METHOD FOR VALIDATION OF A DATA FLOW SYSTEM

DE602020059276T2Active Publication Date: 2025-09-24COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602020059276
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-02-27
Filing Date
2020-02-26
Publication Date
2025-09-24
Estimated Expiration
2040-02-26

AI Technical Summary

Technical Problem

Existing methods for validating synchronous data flow systems are computationally intensive and time-consuming, especially when new tasks are added, and do not efficiently identify inconsistent elements.

Method used

A method for validating data flow systems through incremental and local verification of consistency by checking a local consistency indicator for each new connection, allowing identification of inconsistent elements and reducing the need to reconsider the entire graph.

Benefits of technology

Enables rapid and efficient verification of consistency in data flow systems, identifying inconsistent elements, and minimizing computational effort, particularly when new tasks or connections are added.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

[0001] The present invention relates to a method and a device for validating a data flow system, and more particularly to verifying the consistency of the system. Etat de la technique antérieure

[0002] The present invention applies to systems in which concrete applications use predefined interface functions to exchange data between them. In particular, the invention applies to all synchronous data flow systems (or applications) comprising components (or tasks) called actors, connected to each other by unidirectional communication channels (or connections). These systems are often used to describe the behavior of signal processing applications, as they provide adequate execution semantics to analyze their performance. The most common criteria for performance analysis are directly related to the optimization of buffer sizing, throughput or latency.A first step in solving these optimization problems is to check some properties, such as the existence of an upper bound on buffer sizes and the absence of deadlocks. These properties are advantageously decidable in a data-flow system by checking consistency and deadlock-freeness properties described later.

[0003] A data flow system is generally modeled by a data flow graph. The data flow graph describes a data flow structure in which actors are represented by nodes (or vertices) and communication channels by edges. Each actor in the data flow graph has a set of ports. Each port represents an endpoint of the communication channel. Actors generally have a cyclic behavior, called activation ou tir (firing in English) consisting of reading input data from their input ports, executing their tasks, and placing output data on their output ports. Firing can only occur when the actor has sufficient information about its input ports. The amount of data sent to the output ports or received from the input ports is specified by a number of tokens. Production (respectively, consumption) rates represent the number of tokens that an actor can send (respectively, receive) when firing. Note that in a synchronous data stream, consumption and production rates are constant.

[0004] A dataflow system can be scheduled statically, because each actor in the dataflow graph produces and consumes the same amount of data each time it fires. Moreover, a periodic schedule can be constructed for a synchronous dataflow system, given that all consumption and production rates are fixed. In a valid periodic schedule, each actor activates (i.e., fires) a certain number of times before the graph returns to its initial state, with the same number of tokens initially on the channels.

[0005] Typically, a valid repetition vector is constructed when planning an SDF dataflow system. The repetition vector is a vector whose components are positive integers, and whose dimension is equal to the number of actors belonging to the dataflow graph. Each component of the vector corresponds to an actor and specifies the number of shots triggered by the actor during the periodic schedule. More than one repetition vector can be found for a given graph. The minimal repetition vector has the minimal norm and corresponds to a minimal periodic schedule. Note that the repetition vector is used to check the validity of the dataflow system.

[0006] Indeed, to find a valid periodic schedule of a data flow system, the data flow graph modeling the system must verify consistency and deadlock properties. The consistency property concerns the fact that during execution periods, tokens in a data flow graph do not accumulate on unidirectional channels. It is known [2] that the existence of a non-zero repetition vector is a necessary condition for the consistency of a data flow graph, i.e., that it has a valid periodic schedule. Furthermore, the deadlock-free property (also called liveness) means that actors have enough tokens on their inputs to continue firing. Note that the consistency and deadlock-free properties are independent.

[0007] THE Figs. 1A-1C illustrate examples of two-actor data flow graphs showing consistency and deadlock-free properties, according to the state of the art.

[0008] The example of the Fig. 1A illustrates a consistent graph but one with deadlock. Indeed, this graph G1 is consistent because no tokens accumulate 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. The repetition vector corresponding to graph G1 is X1=(1 1), which means that each of actors A and B activates (draws) once before graph G1 returns to its initial state. However, this graph G1 is not deadlock-free because there is no initial token on the channels, which means that neither actor A nor actor B can start drawing.

[0009] The example of the Fig. 1B illustrates a non-consistent but deadlock-free G2 graph. The one-way channel from B to A contains an initial token. Actor A consumes this initial token and produces another token, which is in turn consumed by actor B. Then, actor B produces two tokens per firing, so that actor A has enough tokens on its inputs to continue firing. However, tokens will continue to accumulate on actor A's input ports because the rate of consumption by actor A is not as fast as the rate of production by actor B. In this case, no repetition vector can be found for this G2 graph, which means that it is not consistent.

[0010] In contrast, the example of the Fig. 1C illustrates a graph G3 satisfying both the consistency and liveness property (i.e., absence of deadlock). Indeed, actor A consumes the two initial tokens on its input port and produces one token on the output port. Then, actor B consumes one token and produces two tokens on its output port, which means that graph G3 returns to its initial state. The repetition vector corresponding to graph G3 is then X3=(1 1). The existence of such a (non-zero) repetition vector means that graph G3 is consistent. Moreover, one way to check for the absence of deadlock, as proposed in

[12] , is to trigger each node the number of times specified by the repetition vector. If the data flow graph has no deadlock during this test, then it is deadlock-free.

[0011] The consistency property is important because if a repeat vector cannot be found for a given dataflow graph, then any dataflow system corresponding to that graph will either deadlock or have buffer sizes with no upper bound.

[0012] Currently, the formalism generally used in the state of the art for consistency checking is based on the extraction of a matrix called the "topology matrix" from the data flow graph. This formalism is described by Lee and Messerschmitt [1, 2] for synchronous data flow graphs. The topology matrix describes how the graph is connected and the amounts of information that each actor in the graph can send or receive at each shot. The topology matrix is ​​usually denoted by the letter gamma Γ. Each actor in the data flow graph has a column in the topology matrix Γ and each channel (connection) is assigned to a row. Thus, the (i, j)th entry of the topology matrix Γ corresponds to the production or consumption rate of node j on channel i. By convention, production rates are denoted by positive numbers while consumption rates are denoted by negative numbers.

[0013] According to the above definition, the topology matrices Γ1, Γ2 and Γ3 corresponding to the graphs G1, G2 and G3 illustrated in the Figs. 1A-1C are : Γ 1 = 1 − 1 − 1 1 , Γ 2 = 1 − 1 − 1 2 , et Γ 3 = 1 − 1 − 2 2

[0014] A non-zero repeat vector, here denoted X, can possibly be found by solving the following matrix equation: Γ X → = 0 →

[0015] The existence of a non-zero repetition vector X is a necessary condition for the existence of a periodic schedule in which buffer sizes remain limited. Solving the matrix equation for graphs G1, G2, and G3 gives the vectors shown above: X1=(1 1), X2=(0 0), and X3=(1 1).

[0016] Thus, in order to check whether there is a non-zero repeat vector X, it is first necessary to construct the entire data flow graph. In other words, the data flow system must be in its final form before being able to check whether the system is consistent or not.

[0017] This method is very time-consuming and computationally intensive, and in cases where the data flow system has been found to be inconsistent, the method does not allow for the detection of the elements responsible for this inconsistency. Furthermore, if a new task or actor is added to an already consistent data flow system, the entire modified data flow system must be reconsidered before deciding whether it remains consistent.

[0018] The object of the present invention is, consequently, to propose a method for validating a synchronous data flow system which overcomes the aforementioned drawbacks, in particular, by allowing a rapid and simple verification of consistency in the event that new tasks are added as well as by allowing the identification of non-consistent elements. Présentation de l'invention

[0019] The present invention relates to a method for validating a data flow system represented by a data flow graph comprising actors having determined production rates and consumption rates, said method being characterized by an incremental verification in which the consistency of a current unidirectional connection linking 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, said incremental verification comprising the following steps: defining 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 arrival actors being defined by origin xi and arrival xj components respectively which may belong to a single current repetition vector or to two current repetition vectors representative of said first and second current parts of the data flow graph, assigning to said current unidirectional connection a production rate ri relative to the origin actor and a consumption rate rj relative to the arrival actor, verifying a local consistency indicator of said current unidirectional connection,said local consistency indicator examining whether the product of said production rate ri times said original component xi is equal to the product of said consumption rate rj times said arrival component xj, defining a resulting current repetition vector representative of said first and second current parts of the data flow graph.

[0020] Thus, consistency can be checked locally when building the data flow graph or when adding a new connection without reconsidering the entire data flow graph. Indeed, the consistency of the new connection can be evaluated by taking into account the state of the previous graph.

[0021] Advantageously, in the case where said current unidirectional connection verifies the local consistency indicator, said method comprises the following steps: - if the original and arrival actors are associated with two distinct current repetition vectors, called original and arrival repetition vectors, then the resulting current repetition vector is constructed by concatenating said original and arrival repetition vectors, and - if the original and arrival actors are associated with a single current repetition vector, then the resulting current repetition vector is equal to said single current repetition vector.

[0022] So, each time a new connection is added, we can directly know if this new connection is consistent or not.

[0023] Advantageously, in the case where said current unidirectional connection does not verify the local consistency indicator, said method comprises the following steps: - if the original and arrival actors are associated with two distinct current repetition vectors, called original and arrival repetition vectors, then two natural numbers are calculated, called production coefficient ci and consumption coefficient cj verifying an equality between, on the one hand, the product of said production coefficient ci times said production rate ri times said original component xi and, on the other hand, the product of said consumption coefficient cj times said consumption rate rj times said arrival component xj, and the resulting current repetition vector is constructed by concatenating the original repetition vector after having multiplied it by the production coefficient ci with the arrival repetition vector after having multiplied it by the consumption coefficient cj,and -if the originating and destination actors are associated with a single current repetition vector, then the current unidirectional connection is identified as being inconsistent.,

[0024] Thus, this process makes it possible to identify which element of the data flow system is inconsistent.

[0025] Advantageously, the production coefficients ci and consumption cj are given by the following equations: c i = m d x j r i / pgcd m d x j r i , m d x i r j et c j = m d x i r j / pgcd m d x j r i , m d x i r j Or m = ppcm r i r j et d = pgcd x i x j .

[0026] Advantageously, the method comprises an operation of adding a new unidirectional connection between first and second current parts of the data flow graph.

[0027] Thus, the method can be effectively used for modular data flow systems.

[0028] Advantageously, the method comprises an operation of deleting a unidirectional connection from the data flow graph represented by a single repetition vector, called the initial repetition vector, according to the following steps: if the data flow graph splits into first and second data flow subgraphs after removing said unidirectional connection, then a first repetition vector is constructed by grouping the components of said initial repetition vector relating to said first data flow subgraph, and a second repetition vector is constructed by grouping the components of the initial repetition vector relating to said second data flow subgraph, and if the graph remains connected after removing said unidirectional connection, then said initial repetition vector is not modified.

[0029] Advantageously, the method comprises an operation of modifying a unidirectional connection, according to the following steps: assign new production rates r' i and consumption rates r' j relative to the originating and arriving actors connected by said unidirectional connection, apply the operation of deleting a unidirectional connection, and apply the operation of adding a unidirectional connection.

[0030] Advantageously, the method comprises verifying the consistency of the data flow graph during its construction by assigning to each additional arrival actor an additional repetition vector whose unique component xi is equal to 1, said additional arrival actor being connected by said current unidirectional connection to an original actor belonging to said current data flow graph under construction.

[0031] The present invention also relates to 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 unidirectional communication connections, each actor being configured to receive input data and to deliver output data.

[0032] Advantageously, said system is one of any of the following processing systems: medical imaging system, computer vision system, video coding and compression system, audio sampling frequency conversion system, tool design system for wireless communication systems, multi-channel speech enhancement system, embedded system.

[0033] The present invention also relates to a device for validating a data flow system represented by a data flow graph comprising actors presenting determined production rates and consumption rates, said system comprising: an acquisition module configured to acquire data relating to first and second current parts of the data flow graph, and a supervision module configured to incrementally verify the consistency of said data flow system by verifying at each increment the local consistency of a current unidirectional connection linking the first current part of the data flow graph to the second current part of the data flow graph. Brève description des figures

[0034] Other features and advantages of the device and method according to the invention will become more apparent on reading the description given below, for informational but non-limiting purposes, with reference to the appended drawings in which: [ Fig. 1A ] [ Fig. 1B ] [ Fig. 1C ] illustrate examples of two-actor data flow graphs showing the properties of consistency and deadlock-freeness, according to the state of the art; [ Fig. 2 ] schematically illustrates a device and a method for validating a data flow system, according to an embodiment of the invention; [ Fig. 3 ] is a data flow graph illustrating the consistency verification 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 using 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. 9A ] And [ Fig. 9B ] illustrate by way of example the consistency verification in a data flow system modeling a multi-channel speech enhancement device, according to the present invention. Description détaillée de l'invention

[0035] 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 concerned with data flow systems whose actors have determined (i.e. defined or quantifiable) consumption and production rates. For example, the system may be a synchronous data flow system of the SDF (Synchronous dataflow) type or a synchronous and cyclic data flow system.

[0036] There Fig. 2 schematically illustrates a device and a method for validating a data flow system, according to one embodiment of the invention.

[0037] 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 computer programs comprising program code instructions, stored in the memories 7 of the computer and designed to implement the validation of a data flow system.

[0038] According to the invention, the validation device 1 comprises an acquisition module 9 and a supervision module 11.

[0039] The acquisition module 9 is configured to acquire data relating to a current data flow graph 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. By first or second current part of a data flow graph, we mean a part of the graph comprising at least a single actor.

[0040] Generally speaking, a data flow graph comprises independent actors exchanging quantifiable information between them, through unidirectional communication connections (i.e. channels). The actors can be software entities (e.g., applications) and / or hardware entities (e.g., sensors, cameras, probes, microprocessors, etc.). The actors are represented by nodes (or vertices) and the communication connections by arcs. Each actor is configured to wait to have received a specified amount of data on its input ports in order to consume this amount of data, to perform (or not) a processing of this data and to produce a specified amount of data on its output ports to new actors, and each repeating this behavior indefinitely. The cyclical process of consumption / processing / emission is commonly called a activation or a tir.

[0041] In synchronous data flows, all actors have determined (quantifiable) consumption and production rates, and these rates are known when constructing the data flow graph. The nodes of the data flow graph can be mapped to different computational units so that tasks can be executed in a certain order. This procedure is called scheduling, which can be performed statically (at compile time) or dynamically (at run time).

[0042] The supervision module 11 is configured to incrementally verify the consistency of the data flow system by verifying at each increment the local consistency of the current unidirectional connection linking the first current part of the data flow graph to the second current part of the data flow graph.

[0043] Furthermore, note that the absence of deadlocks can be checked by triggering each node the number of times specified by the repetition vector. If no deadlocks were detected during this test, then the data flow graph is deadlock-free.

[0044] In the following, we denote by X the repetition vector and by xi the ith component of the repetition vector X. We consider by convention that when an actor is created, a repetition vector is associated with it comprising only one component whose value is equal to one.

[0045] Furthermore, the local and incremental consistency checking according to the invention is based on the following proposition and its corollary as well as their implications. Proposition: If a data flow graph G is consistent and has a valid repetition vector X, then kX is also a valid repetition vector for any natural number k (i.e. k ε Z). Corollary: Consider a consistent data flow graph with n actors and a valid repetition vector X = [x 1 x 2 ... xn ]. Suppose that due to an additional design constraint, the ith component of vector X must be modified. Let x* i denote the new value of the ith component of vector X. Then, in order to preserve the consistency of the data flow graph, the values ​​of all other components xj of vector X (i.e. xj , j = 1... n, and j ≠ n) must be multiplied by x* i / xi .

[0046] Thus, when a new unidirectional connection is created between two actors ai and aj having production and consumption rates ri and rj respectively and being represented by components xi and xj respectively, the new unidirectional connection is considered to be consistent if two natural numbers ci and cj (i.e. ci ∈ Z and cj ∈ Z), called production coefficients ci and consumption coefficients cj , can be found satisfying a consistency property. This property is an equality between, on the one hand, the product of the production coefficient ci times the production rate ri times the original component xi and, on the other hand, the product of the consumption coefficient cj times the consumption rate rj times the arrival component xj according to the following equation: c i r i x i = c j r j x j

[0047] In fact, the Fig. 3 is a data flow graph illustrating the consistency checking of a connection, according to equation (3) above.

[0048] More specifically, the example of the Fig. 3 illustrates a graph G4 resulting from the modification of the coherent graph G3 of the Fig. 1C by adding a new actor C and a new connection between actor B and actor C. Note that this modification can be seen either as a modification of the initial graph G3 illustrated in the Fig. 1C , either as one step among others in the iterative construction of the G4 graph of the Fig. 3 . In both cases, the modification consists of adding the new connection between actor B and actor C. Let XG and XC be the repetition vectors of the initial graph G3 and of actor C respectively. In this case, the second component x B of the repetition vector XG associated with the initial graph G3 is equal to 1 (i.e. x B =1) and by convention the only component x C of the repetition vector XC of actor C is equal to 1 (i.e. x C =1). On this new connection, actor B produces one token, which means r B =1, and actor C consumes two tokens, which means r C =2. We have seen previously that the repetition vector XG corresponding to the initial graph G3 is XG =(1 1). In order to calculate the new repetition vector X' G resulting from the connection, it is sufficient to find two natural numbers c 1 and c 2 verifying equation (3) above. Substituting the known variables into equation (3), we obtain c 1 =2c 2 .Furthermore, a minimal repetition vector can be determined by choosing c 1 =2 and c 2 =1. Thus, the values ​​corresponding to actors B and C in the new repetition vector X' G will be x* B =c 1 x B =2 and x* C =c 2 x C =1, respectively. In this case, the consistency property is preserved by the proposition stated above. Furthermore, in accordance with the corollary above, the component of the repetition vector corresponding to actor A must also be changed. Thus, after connecting actors B and C, the new repetition vector X' G of the graph of the . Fig. 3 is X' G =(2 2 1).

[0049] We note that it is not at all necessary to calculate a new topology matrix Γ for the graph G4 of the Fig. 3 . It was sufficient only to find the coefficients c 1 and c 2 and then apply the corollary above. Nevertheless, we notice that the new repetition vector X' G =(2 2 1) found above satisfies equation (2) with a topology matrix given by: Γ = 1 − 1 0 − 2 2 0 0 1 − 2

[0050] In the following, we show a way to choose the coefficients ci and cj so as to satisfy equation (3) for the general case in which two actors, called origin actor aj of component xi and arrival actor aj of component xj are connected. In particular, by choosing ci = xj / ri and cj = xi / rj and substituting them in equation (3), we obtain: x j r i r i x i = x i r j r j x j

[0051] This equation is of course always true. However, this choice of parameters does not guarantee integer values ​​for the coefficients ci and cj . So, to make these coefficients integers, we multiply equality (5) above by the least common multiplier ppcm production rates ri and consumption rates rj and we divide by the greatest common divisor pgcd of the components xi and xj of the original and arrival actors respectively. This gives the following production coefficients ci and consumption cj: c i = m d x j r i et c j = m d x i r j où m = ppcm r i r j et d = pgcd x i x j

[0052] The coefficients ci and cj according to equation (6) satisfy the consistency condition of equation (3).

[0053] In order to determine the minimal repetition vector, the initial components of the repetition vector are multiplied only by coefficients defined by their greatest common divisor: c i = m d x j r i / pgcd m d x j r i , m d x i r j et c j = m d x i r j / pgcd m d x j r i , m d x i r j

[0054] The coefficients ci and cj defined in equations (7) obviously satisfy equality (3). For example, when a new connection is established between actors ai and aj , the component xi of the repetition vector corresponding to actor ai is multiplied by ci , and the component xj corresponding to actor aj is multiplied by the coefficient cj in order to preserve the consistency property of the graph.

[0055] There 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.

[0056] In this method, the consistency of a current unidirectional connection linking a first current part of the data flow graph to a second current part of the data flow graph is checked.

[0057] In step E1, the current unidirectional connection linking actors of origin ai and arrival aj is defined. The actors of origin ai and arrival aj belong to the first and second current parts of the data flow graph respectively. The components of origin x' i and arrival x" j are defined associated with the actors of origin ai and arrival aj. It should be noted that in general, the components of origin x' i and arrival x" j can belong to a single current repetition vector X' representative of the first and second current parts of the graph or to two distinct current repetition vectors X' and X" representative of the first and second current parts of the graph respectively.

[0058] The definition of the current unidirectional connection involves the assignment of a production rate ri relative to the origin actor ai and a consumption rate rj relative to the arrival actor aj .

[0059] For example, we can consider that a data flow graph is under construction and that a new current connection is established between the original actor ai and the arrival actor aj . This case is summarized in the Algorithm described in Table 1 below. In this Algorithm, we consider two repetition vectors X' and X" corresponding respectively to the first and second current parts of the data flow graph. We denote by i the index of the i th component of vector X' and j the index of the j th component of vector X". We denote by ri the production rate corresponding to the component x' i of vector X' and by rj the consumption rate corresponding to the component x" j of vector X". We denote the operations "ppcm" and "pgcd" by "Icm" and "gcd" respectively. In addition, we denote by X the resulting repetition vector corresponding to the new graph.

[0060] In step E2, in order to avoid unnecessary operations, we first check a local consistency indicator of the current unidirectional connection (line 1 of the Algorithm). This local consistency indicator examines whether the product of the production rate ri times the original component xi is equal to the product of the consumption rate rj times the arrival component xj (i.e., ri* xi = rj* xj ). Whatever the outcome of this test, we consider in the following steps two cases. A first case where the two actors come from two different repetition vectors, that is to say there was no connection between the two actors before the new connection, and a second case where the two actors come from the same graph, that is to say they have the same repetition vector. Depending on the outcome of these two different cases, we define in steps E4-E6 or E8-E9 a resulting current repetition vector representative of the first and second current parts of the data flow graph.

[0061] Indeed, if the test of step E2 is positive, that is, in the case where the current unidirectional connection verifies the local consistency indicator, we consider 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.

[0062] Steps E3-E6 concern the case where the current unidirectional connection verifies the local consistency indicator. More specifically, step E3 is a test to verify whether the actors of origin ai and arrival aj are associated with two distinct current repetition vectors, called repetition vectors of origin X' and arrival X" (i.e. the case where there was no connection between the actors of origin ai and arrival aj before the current unidirectional connection). If yes, we go to step E4 and if not, we go to step E6.

[0063] Step E4 concerns the case where the two actors come from two different repetition vectors and the new connection is consistent. In this case, we construct the resulting current repetition vector X by concatenating the original repetition vectors X' and the arrival repetition vectors X" and we stop at step E5 where the graph is considered consistent. This corresponds to lines 3 to 6 of the Algorithm above.

[0064] Step E6 concerns the case where the original actors ai and the arrival actors aj are associated with a single current repetition vector (i.e., they come from the same graph). Then, in this case, the resulting current repetition vector X is equal to the single current repetition vector X'. In other words, given that the two actors we wish 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 at step E5 where the graph is considered to be consistent. This corresponds to lines 18-20 of the Algorithm above.

[0065] On the other hand, if the outcome of step E2 is negative, that is, if the current unidirectional connection does not verify the local consistency indicator, then we examine steps E7-E9.

[0066] Step E7 is a test similar to that of step E3 in which we check whether the actors of origin ai and arrival aj are associated with two distinct current repetition vectors, called repetition vectors of origin X' and arrival X". If yes, we go to step E8 and if not, we go to step E10.

[0067] In step E8, we calculate the two natural numbers (i.e. the production coefficients ci and consumption cj ) verifying equation (3) above. In other words, given that the new connection is not consistent, the coefficients ci and cj defined in equation (7) are calculated in lines 8 to 14 of the Algorithm above.

[0068] At 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 ci with on the other hand, the arrival repetition vector X" after having multiplied it by the consumption coefficient cj. Then, we stop at step E5 where we consider that the graph is coherent.

[0069] Step E10 concerns the case where the original actors ai and the arrival actors aj are associated with a single current repetition vector (i.e. the actors come from the same graph), then the current unidirectional connection is identified as being inconsistent (i.e. the resulting graph is not consistent). This corresponds to lines 22-24 of the Algorithm.

[0070] There Fig. 5 schematically illustrates the construction of a graph using the method of Fig. 4 .

[0071] More specifically, the construction of the G5 graph of the figure 5 is an application of the Algorithm shown above. According to this example, four actors A, B, C and D are created, each of them has a repetition vector X = (1). The one-way connections are established in the following order: (A → B), (A → C), (B → D), and (C → D). After the connection (A → B), the calculations according to the Algorithm give the following values: ci = 3, cj = 2 and X = (3 2), because the two actors come from two different repetition vectors. Similarly, ci = 1, cj = 3 and X = (3 2 3) when the connection (A → C) is established. The connection (B → D) underlines the importance of lines 12-14 in the Algorithm. Indeed, before line 12, ci = cj = 2. However, by using these coefficients, we do not obtain a minimal repetition vector when updating the repetition vector X as in line 15, hence the interest in dividing the coefficients by d (lines 13 and 14).The case expressed on lines 17 and 18 of the Algorithm illustrates the connection (C → D) where the repetition vector does not change, the same is true after the connection (C → D), X = (3 2 3 1).

[0072] The example of the Fig. 5 shows the application of the Algorithm on a given G5 graph. From this example, it is observed 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.

[0073] There Fig. 6 schematically illustrates the connection of two distinct graphs, according to the method of the present invention.

[0074] The example of the Fig. 6 is a modular data flow application, in which the G5 data flow graph represented on the Fig. 5 is added to the G4 data flow graph shown in the Fig. 3 to form a new graph G6. Since the consistency property has already been verified for both graphs G4 and G5, only the new connection between actor B1 of the first graph G4 and actor B2 of the second graph G5 needs to be verified. Applying the above Algorithm with the inputs X'= (2 2 1), X"= (3 2 3 1), i = 2, j = 2, ri = 1, and rj = 5, we obtain ci = 5 and cj = 1. The resulting repetition vector given by the output of the Algorithm is X = (10 10 5 3 2 3 1). Note that the current resulting repetition vector X of graph G6 is constructed by concatenating the first repetition vector X' of graph G4 after multiplying it by the production coefficient ci = 5 with the second repetition vector X" of graph G5. Note that the last four components are identical to those of the second repetition vector X" because the consumption coefficient cj =1.

[0075] The example of the Fig. 6 clearly shows that when two consistent 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 re-verify the consistency of the resulting graph G6. Indeed, the method according to the present invention only verifies the new connections and deduces the resulting repetition vector from the two initial repetition vectors. This is a very important advantage compared to the conventional methods of the prior art, for which a new topology matrix must be calculated and a new matrix equation must be solved.

[0076] In addition, the modular application described in the Fig. 6 can also be seen as constructing a first subgraph G4 in which three actors are first created and connected to each other, then constructing a second subgraph G5 in which four more actors are created and connected to each other, and finally the two subgraphs G4 and G5 are connected to each other to form a resulting graph G6.

[0077] Note that consistency is verified during the construction of each subgraph G4, G5 by assigning to each additional arrival actor aj an additional repetition vector whose unique component xi is equal to 1. The additional arrival actor aj is connected by a current unidirectional connection to an original actor ai belonging to the data flow subgraph under construction.

[0078] There Fig. 7 is a flowchart illustrating the steps of a validation method comprising a deletion operation, according to a preferred embodiment of the invention.

[0079] In this method, the consistency of a data flow graph is checked when a unidirectional connection is removed from this graph.

[0080] In step E21, a given connection is deleted from the data flow graph.

[0081] Step E22 is a test to check whether the initial data flow graph divides into two distinct parts or not. If the data flow graph divides into two distinct parts, then we go to step E23 and otherwise, we go to step E26.

[0082] Step E23 concerns the case where the data flow graph is divided into first and second data flow subgraphs after the unidirectional connection is removed. In this case, a first repetition vector X' is constructed by grouping the components of the initial repetition vector relating to the first data flow subgraph, and a second repetition vector X" is constructed by grouping the components of the initial repetition vector relating to the second data flow subgraph.

[0083] Optionally, in step E24, first and second minimal repetition vectors X* and X** are constructed by dividing the first repetition vector X' by the gcd of its components and also by dividing the second repetition vector X" by the gcd of its components.

[0084] At step E25, we obtain two distinct and coherent data flow graphs.

[0085] Step E26 concerns the case where the data flow graph remains connected after the unidirectional connection is removed. In this case, the initial repetition vector is not modified.

[0086] At step E27, we still have a single consistent graph.

[0087] There Fig. 8 is a flowchart illustrating the steps of a validation method comprising a modification operation, according to a preferred embodiment of the invention.

[0088] In this method, the consistency of a data flow graph is checked when a unidirectional connection of this graph is modified.

[0089] In step E31, a given connection of the data flow graph is modified by assigning it new production rates r' i and consumption rates r' j relating to the actors of origin ai and arrival aj connected by this unidirectional connection.

[0090] In step E32, the operation of deleting a unidirectional connection is applied according to the steps of the method of Fig. 7 .

[0091] In step E33, the operation of adding a unidirectional connection described by the methods of the Fig. 4 according to the new production rates r' i and consumption rates r' j .

[0092] At step E34, we obtain a modified and coherent graph.

[0093] The examples and embodiments presented above highlight the advantages of local verification of the consistency property. From the examples considered, it can be seen that the computation of the topology matrix is ​​not necessary and that the minimal repetition vector can be found very efficiently and with very little computation. Another advantage is that inconsistent elements can be identified and it is not necessary to reconsider the entire graph to decide its consistency.

[0094] Furthermore, it will be noted that the method according to the invention can be applied incrementally during the construction of the data flow graph. Alternatively, it can also be applied after the construction of a graph, on each of its connections.

[0095] The present invention applies to all data flow systems. In particular, it applies to digital signal processing systems. Indeed, the processing system can be modeled by a data flow system comprising actors connected to each other by unidirectional communication connections. Each actor is configured to receive input data and to deliver output data.

[0096] For example, the digital signal processing system may be a medical imaging system, a computer vision system, a coding and compression system, an audio sampling frequency conversion system, a tool design system for wireless communication systems, an embedded system, etc.

[0097] Thus, the signal processing system can be modeled by a data flow graph under construction using an incremental approach that can be applied during graph construction. The construction of an inconsistent graph can be stopped as soon as an inconsistent element has been identified.

[0098] Furthermore, the modeling of the signal processing system can be performed in a modular manner. Suppose that one wishes to model an on-board collision avoidance system in a vehicle and that one wishes to add a radar module to a camera vision module. Suppose that each of the radar and vision modules is described by a consistent graph. The consistency of the combination of the two modules can be determined according to the present invention by checking only the changes generated by the combination, such as the addition of the connections between the two graphs, and can thus reduce the number of operations required for consistency checking.

[0099] There Fig. 9 illustrates by way of example the consistency check in a data flow system modeling a multi-channel speech enhancement device, according to the present invention.

[0100] The multichannel speech enhancement device 21 is connected to an array of four microphones M1-M4. The noisy signals 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 enhanced speech signal at the output 31. Indeed, 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 an addition or synthesis unit 29.

[0101] In particular, the speech enhancement unit with post-filtering 27 comprises a first MVDR (Minimum Variance Distortionless Response) spatial filtering module 33, a second post-filtering estimation module 35 and a third post-filtering module 37. The signals e1-e4 from the Fourier transform unit 25 are injected on the one hand into the first spatial filtering module 33 (Beamformer, in English) and on the other hand, into the second post-filtering estimation module 35. In addition, 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. It will be noted that each of the modules 33, 35 and 37 can comprise a set of actors. Thus, the post-filtering unit 37 can be modeled by a data flow graph where the consistency property is verified on all actors according to the method of the present invention.

[0102] Furthermore, once the coherence property has been verified on all modules 33, 35, 37 of this application, some of them can be modified. For example, suppose that the multichannel speech enhancement application uses a McCowan post-filter for the post-filtering module 37. This filter can be replaced by a Wiener post-filter in order to obtain a more accurate estimation of the noise spectral density. In this case, it is not necessary to verify the coherence property again on all the modules. Indeed, if the new post-filtering module verifies the coherence property, this does not impact the coherence property of the other modules and it is concluded that the entire application verifies the coherence property according to the method of the present invention. Références

[0103] 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

1. Method implemented by computer for validating a data flow system represented by a data flow graph including actors having determined production rates and consumption rates, said method being characterised by an incremental verification in which the consistency of a current unidirectional connection 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; said incremental verification includes the following steps: - defining origin and destination actors connected by said current unidirectional connection, the origin and destination actors belonging to said first and second current parts of the data flow graph, respectively, the origin and destination actors being defined by origin xi and destination xj components, respectively, that can belong to a single current repetition vector or to two current repetition vectors representative of said first and second current parts of the data flow graph, - assigning to said current unidirectional connection a production rate ri relative to the origin actor and a consumption rate rj relative to the destination actor, - verifying an indicator of local consistency of said current unidirectional connection, said indicator of local consistency examining whether the product of said production rate ri times said origin component xi is equal to the product of said consumption rate rj times said destination component xj, the current unidirectional connection being considered to be consistent if the equality is satisfied, and - defining a resulting current repetition vector representative of said first and second current parts of the data flow graph.

2. Validation method according to claim 1, characterised in that in the case in which said current unidirectional connection verifies the indicator of local consistency, said method includes the following steps: - if the origin and destination actors are associated with two distinct current repetition vectors, called origin and destination repetition vectors, then the resulting current repetition vector is constructed by concatenating said origin and destination repetition vectors, and - if the origin and destination actors are associated with a single current repetition vector, then the resulting current repetition vector is equal to said single current repetition vector.

3. Validation method according to claim 1, characterised in that in the case in which said current unidirectional connection does not verify the indicator of local consistency, said method includes the following steps: - if the origin and destination actors are associated with two distinct current repetition vectors, called origin and destination repetition vectors, then two natural numbers are calculated, called production coefficient ci and consumption coefficient cj verifying an equality between on the one hand the product of said production coefficient ci times said production rate ri times said origin component xi and on the other hand the product of said consumption coefficient cj times said consumption rate rj times said destination component xj, and the resulting current repetition vector is constructed by concatenating the origin repetition vector after having multiplied it by the production coefficient ci with the destination repetition vector after having multiplied it by the consumption coefficient cj, and - if the origin and destination actors are associated with a single current repetition vector, then the current unidirectional connection is identified as being inconsistent.

4. Validation method according to claim 3, characterised in that the production ci and consumption cj coefficients are given by the following equations: c i = m d x j r i / pgcd m d x j r i , m d x i r j and c j = m d x i r j / pgcd m d x j r i , m d x i r j where m = ppcm r i r j and d = pgcd x i x j .

5. Validation method according to any one of claims 1 to 4, characterised in that it includes an operation of addition of a new unidirectional connection between first and second current parts of the data flow graph.

6. Validation method according to any one of claims 1 to 4, characterised in that it includes an operation of deletion of a unidirectional connection from the data flow graph represented by a single repetition vector, called initial repetition vector, according to the following steps: - if the data flow graph is divided into first and second data flow subgraphs after the deletion of said unidirectional connection, then a first repetition vector is constructed by grouping together the components of said initial repetition vector relative to said first data flow subgraph, and a second repetition vector is constructed by grouping together the components of the initial repetition vector relative to said second data flow subgraph, and - if the graph remains connected after the deletion of said unidirectional connection, then said initial repetition vector is not modified.

7. Validation method according to claims 5 and 6, characterised in that it includes an operation of modification of a unidirectional connection, according to the following steps: - assigning new production r'i and consumption r'j rates relative to the origin and destination actors connected by said unidirectional connection, - applying the operation of deletion of a unidirectional connection according to claim 7, and - applying the operation of addition of a unidirectional connection according to claim 6.

8. Validation method according to any one of claims 1 to 7, characterised in that it includes the verification of the consistency of the data flow graph during its construction or its modification, by assigning to each additional destination actor an additional repetition vector, the only component xi of which is equal to 1, said additional destination actor being connected by said current unidirectional connection to an origin actor belonging to said current data flow graph being constructed or modified.

9. System for processing a digital signal designed by using the validation method according to any one of the previous claims, characterised in that said processing system is modelled by a data flow system including actors connected to each other by unidirectional communication connections, each actor being configured to receive input data and to deliver output data.

10. System for processing a digital signal according to claim 9, characterised in that said system is a system out of any one of the following processing systems: medical imaging system, computer vision system, video encoding and compression system, system for converting an audio sampling frequency, system for designing tools for wireless communication systems, multichannel speech enhancement system, onboard system.

11. Device for validating a data flow system represented by a data flow graph including actors having determined production rates and consumption rates, characterised in that said system includes: - an acquisition module (9) configured to acquire data relating to first and second current parts of the data flow graph, and - a supervision module (11) configured to incrementally verify the consistency of said data flow system by verifying 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 data flow graph, said supervision module (11) being configured to verify the consistency according the following steps: - defining origin and destination actors connected by said current unidirectional connection, the origin and destination actors belonging to said first and second current parts of the data flow graph, respectively, the origin and destination actors being defined by origin xi and destination xj components, respectively, that can belong to a single current repetition vector or to two current repetition vectors representative of said first and second current parts of the data flow graph, - assigning to said current unidirectional connection a production rate ri relative to the origin actor and a consumption rate rj relative to the destination actor, - verifying an indicator of local consistency of said current unidirectional connection, said indicator of local consistency examining whether the product of said production rate ri times said origin component xi is equal to the product of said consumption rate rj times said destination component xj, said current unidirectional connection being considered to be consistent if the equality is satisfied, and - defining a resulting current repetition vector representative of said first and second current parts of the data flow graph.