A method for verifying data flow systems.

JP7638879B2Active Publication Date: 2025-03-04COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2021550039
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-02-27
Filing Date
2020-02-26
Publication Date
2025-03-04
Estimated Expiration
2040-02-26

AI Technical Summary

Benefits of technology

【0036】 本発明による、デバイスの、および方法の他の詳細および利点は、添付の図面を参照して、情報および非限定的目的のために以下に挙げる説明を読むと、より明らかになる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007638879000011
    Figure 0007638879000011
  • Figure 0007638879000012
    Figure 0007638879000012
  • Figure 0007638879000013
    Figure 0007638879000013
Patent Text Reader

Abstract

The present invention relates to a method and device for verifying a data flow system represented by a data flow graph, comprising an acquisition module (9) configured to acquire data relating to a first and a second intersection of the data flow graph, and a monitoring module (11) configured to incrementally prove the consistency of the data flow system by proving, at each increment, the local consistency of a common unidirectional connection connecting a first intersection of the data flow graph to a second intersection of the data flow graph.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a method and device for verifying a data flow system, and more particularly to proving the integrity of the system. [Background technology]

[0002] The invention applies to systems in which concrete applications use predefined interface functions to exchange data between them. In particular, the invention applies to all data flow systems (or applications) of synchronous type, including 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, since they offer execution semantics suitable for analyzing their performance. The most common criteria for performance analysis are directly related to the optimization of buffer memory sizing, of bit rate, or of latency. The first step in the solution of these optimization problems involves proving some properties, such as the existence of upper bounds on buffer memory sizes and the absence of blocking. These properties are advantageously determinable in data flow systems by proving the properties of consistency and of the absence of deadlock, described below.

[0003] Dataflow systems are generally modeled by dataflow graphs. A dataflow graph describes a dataflow structure where actors are represented by nodes (or vertices) and communication channels by arcs. Each actor in a dataflow graph provides a set of ports. Each port represents an endpoint of a communication channel. Actors generally have a periodic behavior called activation or firing, which involves reading input data from their input ports, performing their tasks, and putting output data on their output ports. Firing can only occur when an actor provides enough information on its input ports. The amount of data sent on an output port or received from an input port is specified by the number of tokens. The production (or consumption) rate represents the number of tokens an actor can send (or receive) when it fires. Note that in synchronous types of dataflow, the consumption and production rates are constant.

[0004] Dataflow systems may be statically planned since each actor in the dataflow graph produces and consumes the same amount of data each time it fires. Moreover, periodic programs may be constructed for synchronous dataflow systems, provided that the consumption and production rates are all fixed. In a valid periodic schedule, each actor will initially have the same number of tokens on its channels and will activate (i.e., fire) a certain number of times before the graph returns to its initial state.

[0005] In general, during the planning of an SDF dataflow system, a valid repetition vector is constructed. A repetition vector is a vector whose components are positive integers and whose dimension is equal to the number of actors belonging to the datastream graph. Each component of the vector corresponds to an actor and specifies the number of firings triggered by the actor during a periodic program. For a given graph, multiple repetition vectors may be found. The minimum repetition vector has the minimum norm and corresponds to the smallest periodic schedule. Note that repetition vectors are used to prove the validity of a dataflow system.

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

[0007] 1A-1C show an example of a dataflow graph with two actors that exhibits consistent and deadlock-free properties according to the prior art.

[0008] The example in Figure 1A shows a graph that is consistent but has deadlocks. Indeed, this graph G1 is consistent because no tokens accumulate on the channel. Actor A produces a token, which is consumed by actor B, who then fires 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 (fires) once before graph G1 returns to its initial state. However, this graph G1 is not deadlock-free, since there is no initial token on the channel, which means that neither actor A nor actor B can start firing.

[0009] The example in Fig. 1B shows a graph G2 that is inconsistent but deadlock-free. The unidirectional channel going from B to A contains an initial token. Actor A consumes this initial token and produces another token, which is consumed by actor B. Actor B then produces two tokens per firing, so that actor A has enough tokens at its input to continue firing. However, tokens continue to accumulate on the input port of actor A, since the rhythm of consumption by the latter is not as fast as the rhythm of production by actor B. In this case, no repetition vector can be found for this graph G2, which means that it is not consistent.

[0010] In contrast, the example in Figure 1C shows a graph G3 that satisfies both the consistency and liveness (i.e., deadlock-free) properties. Indeed, actor A consumes two initial tokens at its input port and produces a token at its output port. Then actor B consumes a token and produces two tokens at its output port, which means that graph G3 returns to its initial state. The repetition vector corresponding to graph G3 is therefore X3 = (1 1). The existence of such a (non-zero) repetition vector means that graph G3 is consistent. Moreover, the deadlock-free proof method proposed in [1, 2] involves triggering each node as many times as specified by the repetition vector. A dataflow graph does not have any deadlocks if it does not have any deadlocks during this test.

[0011] The consistency property is important because if it is not possible to find a repetition vector for a given dataflow graph, then any dataflow system corresponding to this graph will either be deadlocked or will be up to the buffer memory size with no upper bound.

[0012] The formalism currently generally used in the prior art for consistency proofs is based on the extraction of a matrix called the "topology matrix" of the data stream graph. This formalism is described by Lee and Messerschmitt [1, 2] for synchronous data flow graphs. The topology matrix describes the way the graph is connected and the amount of information each actor in the graph can send or receive in each firing. The topology matrix is ​​generally specified by the letter gamma Γ. Each actor of 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 specified by positive numbers and consumption rates by negative numbers.

[0013] According to the above definition, the topological matrices Γ1, Γ2, and Γ3 corresponding to the graphs G1, G2, and G3 shown in FIGS. 1A to 1C are expressed as follows:

number

[0014] A non-zero repeat vector, denoted here as X, may optionally be expressed by the following determinant:

number

[0015] The existence of a non-zero repetition vector X is a necessary condition for the existence of a periodic schedule for which the buffer memory size remains finite. Solving the determinants for graphs G1, G2 and G3 gives the vectors shown above, i.e., X1 = (1 1), X2 = (0 0) and X3 = (1 1).

[0016] Therefore, in order to be able to prove whether there is a non-zero repetition vector X, it is first necessary to construct the dataflow graph in its entirety. In other words, the dataflow system must be in its final form before it can be proven whether the system is consistent.

[0017] This method is very costly in terms of time and computation, and in the case where a dataflow system is determined to be inconsistent, the method does not allow detecting the elements responsible for this inconsistency. Moreover, when new tasks or actors are added to an already consistent dataflow system, the entire modified dataflow system must be reconsidered once again before deciding whether the latter remains consistent. Summary of the Invention [Problem to be solved by the invention]

[0018] The object of the present invention is therefore to propose a method for verifying data flow systems of synchronous type that overcomes the above-mentioned drawbacks by allowing a fast and easy proof of consistency, in particular in the case where new tasks are added, as well as by allowing the identification of inconsistent elements. [Means for solving the problem]

[0019] The present invention relates to a method for verifying a dataflow system represented by a dataflow graph comprising actors with determined production and consumption rates, said method being characterized by an incremental proof in which the consistency of a current unidirectional connection connecting a first current portion of the dataflow graph to a second current portion of the dataflow graph is proven locally at each increment.

[0020] This method allows a dataflow graph to have a flexible topology in which actors (or connections) can be deleted, added, or modified.

[0021] Advantageously, the method comprises the steps of: defining an origin and a destination actor connected by the current unidirectional connection, the origin and the destination actor respectively belonging to the first and second current portions of the dataflow graph, the origin and the destination actor respectively belonging to a single current iteration vector or to two current iteration vectors representing the first and second current portions of the dataflow graph; i and goal x j a step defined by a component, The current unidirectional connection has a production rate r i and the consumption rate r for the target actor j and assigning establishing an indicator of local consistency of the current unidirectional connection, the indicator of local consistency being determined by the production rate r i x the starting component i The product of these is the consumption rate rj x the target component j a step of checking whether it is equal to the product of defining a resulting current iteration vector representing said first and second current portions of the data flow graph; Includes.

[0022] Thus, consistency can be proven locally during the construction of the dataflow graph or during the addition of new connections, without reconsidering the entire dataflow graph. In fact, the consistency of a new connection can be evaluated by taking into account the state of the previous graph.

[0023] Advantageously, in the case where said current unidirectional connection demonstrates an indicator of local consistency, said method further comprises: if an origin and a target actor are associated with two distinct current repetition vectors, called origin and target repetition vectors, the resulting current repetition vector is constructed by concatenating said origin and target repetition vectors; if the origin and destination actors are associated with a single current repetition vector, the obtained current repetition vector is equal to said single current repetition vector; Includes.

[0024] Therefore, whenever a new connection is added, it can be directly known whether the new connection is consistent or not.

[0025] Advantageously, in case the current unidirectional connection does not demonstrate an indicator of local consistency, the method further comprises: If the origin and target actors are associated with two distinct current repetition vectors, called the origin and target repetition vectors, then the production coefficient c i and consumption coefficient c j Two natural numbers, called the production coefficient c, are calculated: i multiplied by the production rate r i x the starting component iand, on the other hand, the consumption coefficient c j multiplied by the consumption rate r j x the target component x j Prove the equivalence between the product of and the current iteration vector obtained is the production coefficient c i The origin repeat vector after multiplication by the consumption coefficient c j and a target repetition vector after multiplication by if the origin and destination actors are associated with a single current repetition vector, then the current unidirectional connection is identified as inconsistent; and Includes.

[0026] Thus, the method allows identifying which elements of a data flow system are inconsistent.

[0027] Advantageously, production c i and consumption c j The coefficients are given by the following formula:

number

number

[0028] Advantageously, the method includes the act of adding a new unidirectional connection between the first and second current portions of the dataflow graph.

[0029] Therefore, the method can be effectively used for modular data flow systems.

[0030] Advantageously, the method comprises an operation of erasure of unidirectional connections from the data flow graph represented by a single repetition vector, called the initial repetition vector, which operation comprises: if, after the elimination of the unidirectional connections, the dataflow graph is partitioned into a first and a second dataflow subgraph, a first repetition vector is constructed by aggregating components of the initial repetition vector for the first dataflow subgraph and a second repetition vector is constructed by aggregating components of the initial repetition vector for the second dataflow subgraph; and If after the elimination of the unidirectional connections the graph remains connected, then the initial iteration vector is not modified.

[0031] Advantageously, the method includes the operation of modifying the unidirectional connection, which operation comprises: · A new production r' for the origin and destination actors connected by the unidirectional connection i and consumption r' j assigning a rate; applying the operation of clearing unidirectional connections, and Follow the steps to apply additional behavior for unidirectional connections.

[0032] Advantageously, the method comprises the step of: i The method includes a step of proving the consistency of the dataflow graph during its construction by assigning an additional repetition vector, .times.1, equal to 1, to each additional target actor, said additional target actor being connected by said current unidirectional connection to an origin actor belonging to said current dataflow graph being constructed.

[0033] The invention also relates to a system for processing digital signals designed by using a verification method according to any one of the previous features, 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.

[0034] Advantageously, the system is one of the following processing systems: a medical imaging system, a computer vision system, a video encoding and compression system, a system for converting audio sampling frequencies, a system for designing tools for wireless communication systems, a multi-channel speech enhancement system, an on-board system.

[0035] The invention is also directed to a device for validating a data flow system represented by a data flow graph comprising actors having determined production and consumption rates, said system comprising: an acquisition module configured to acquire data relating to first and second current portions of the data flow graph; a monitoring module configured to incrementally prove consistency of the dataflow system by proving, at each increment, local consistency of current unidirectional connections connecting a first current portion of the dataflow graph to a second current portion of the dataflow graph; Includes.

[0036] Other details and advantages of the device and of the method according to the invention will become more apparent on reading the description given below, for informational and non-limiting purposes, with reference to the attached drawings, in which: [Brief description of the drawings]

[0037] [Figure 1A] FIG. 1 shows an example of a dataflow graph with two actors that exhibits consistency and deadlock-free properties according to the prior art. [Figure 1B] FIG. 1 shows an example of a dataflow graph with two actors that exhibits consistency and deadlock-free properties according to the prior art. [Figure 1C] FIG. 1 shows an example of a dataflow graph with two actors that exhibits consistency and deadlock-free properties according to the prior art. [Diagram 2]1 illustrates generally a device and method for validating a data flow system according to an embodiment of the present invention; [Diagram 3] 1 is a data flow graph illustrating proof of connection consistency according to an embodiment of the present invention. [Figure 4] 3 is a flow chart illustrating method steps for validating a data flow system according to a preferred embodiment of the present invention. [Diagram 5] FIG. 5 illustrates a schematic diagram of the construction of a dataflow graph according to the method of FIG. 4; [Figure 6] FIG. 2 shows a schematic diagram of the connection of two distinct graphs according to the method of the invention. [Figure 7] 4 is a flow chart illustrating steps of a verification method including an erase operation according to a preferred embodiment of the present invention. [Figure 8] 4 is a flow chart illustrating steps of a verification method including corrective actions according to a preferred embodiment of the present invention. [Figure 9A] FIG. 2 illustrates, by way of example, a proof of consistency in a data flow system that models a multi-channel speech enhancement device, in accordance with the present invention. [Figure 9B] FIG. 2 illustrates, by way of example, a proof of consistency in a data flow system that models a multi-channel speech enhancement device, in accordance with the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0038] The principle of the invention is to incrementally and locally prove the consistency of a dataflow system. The invention is particularly relevant to dataflow systems in which actors have determined (i.e. defined or quantifiable) consumption and production rates. For example, the system may be a synchronous dataflow system of SDF type (synchronous dataflow) or a synchronous and periodic dataflow system.

[0039] FIG. 2 illustrates generally a device and method for validating a data flow system according to one embodiment of the present invention.

[0040] The validation device 1 is implemented by hardware means comprising a machine for processing information, such as a calculator or computer 3 comprising a microprocessor 5 and a memory 7. The microprocessor 5 is configured to execute one or more computer programs comprising program code instructions that are stored in the computer's memory 7 and that are designed to implement validation of the data flow system.

[0041] According to the invention, the verification device 1 comprises an acquisition module 9 and a monitoring module 11 .

[0042] The acquisition module 9 is configured to acquire data regarding the current dataflow graph, and more specifically, data regarding the first and second current portions of the dataflow graph and the current connections between these two portions. The first or second current portion of the dataflow graph means a part of the graph that includes at least a single actor.

[0043] In general, a dataflow graph contains independent actors that exchange quantifiable information between them through unidirectional communication connections (i.e., channels). Actors can be software (e.g., applications) and / or hardware (e.g., 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 receive a specified amount of data on its input port with the goal of consuming a specified amount of data, performing (or not performing) processing of this data, and producing a specified amount of data on its output port directed to the new actor, each repeating this behavior indefinitely. The cyclical process of consuming / processing / emitting is, by convention, called activation or firing.

[0044] In synchronous dataflow, all actors have determined (quantifiable) consumption and production rates, which are known during the construction of the dataflow graph. The nodes of the dataflow graph may be mapped across various computational units so that tasks can be executed in a particular order. This procedure is called planning, and may be practiced statically (compile-time) or dynamically (run-time).

[0045] The monitoring module 11 is configured to incrementally prove the consistency of the dataflow system by proving at each increment the local consistency of a current unidirectional connection connecting a first current portion of the dataflow graph to a second current portion of the dataflow graph.

[0046] Moreover, note that the absence of deadlocks can be proven by triggering each node the number of times specified by the iteration vector. If no deadlocks are evident during this test, then the dataflow graph is therefore free of any locking.

[0047] Hereafter, X denotes the repeat vector, and x i denotes the i-th component of the repetition vector X. By convention, when an actor is created, a repetition vector that contains only a single component whose value is equal to 1 is considered to be associated with it.

[0048] Moreover, our local and incremental proof of consistency is based on the following premises and their corollaries, as well as their implications. Assumption: If a dataflow 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). Inference: Given n actors and a valid iteration vector X = [x1x2... x n Consider a consistent data flow graph with . Due to additional design constraints, suppose that the i-th component of vector X must be modified. x* idenotes the new value of the i-th component of vector X. Therefore, to preserve the integrity of the data flow graph, j All values ​​(i.e., x j , j=1 to n, and j≠n) is x* i / x i must be multiplied by

[0049] Therefore, the production rate r i and consumption rate r j and each of the components x i and x j Two actors, a, i and a j When a new unidirectional connection is created between, ... i and consumption coefficient c j Two natural numbers called c i and c j (i.e., c i ∈Z and c j ∈Z), it is considered consistent. This property is satisfied by the following: i Multiply production rate r i x the starting component i and on the other hand, the consumption coefficient c j multiplied by consumption rate r j x target component j and the product of c i r i x i =c j r j x j (3)

[0050] In fact, FIG. 3 is a data flow graph showing the proof of connection consistency according to equation (3) above.

[0051] More specifically, the example of Fig. 3 shows a graph G4 resulting from the modification of the consistency graph G3 of 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 shown in Fig. 1C, or in particular as a step in the iterative construction of graph G4 of Fig. 3. In both cases, the modification involves adding a new connection between actor B and actor C. G and X C Let be the repetition vectors of the initial graph G3 and of actor C, respectively. In this case, the repetition vector X G The second component x B is equal to 1 (i.e., x B =1), by convention, the repetition vector X of actor C C The only component of x C is equal to 1 (i.e., x C = 1). In this new connection, actor B produces a token, which means B = 1, actor C has spent 2 tokens, which means r C = 2. The repetition vector X corresponding to the initial graph G3 G isX G = (1 1), as shown above. The new iteration vector X' obtained from the connection G To calculate, it is enough to find two natural numbers c1 and c2 that prove the above formula (3). By substituting the known variables in formula (3), we are given c1 = 2c2. Moreover, by choosing c1 = 2 and c2 = 1, the minimum repetition vector can be determined. Therefore, the new repetition vector X' G The values ​​corresponding to actors B and C in B =c1x B =2 and x* C =c2x C= 1. In this case, the consistency property is preserved in the ratio mentioned above. Moreover, according to the above reasoning, the component of the repetition vector corresponding to actor A must also be changed. Thus, after the connection of actors B and C, the new repetition vector X' G is X' G =(2 2 1).

[0052] Note that for the graph G4 in Figure 3, there is no need to compute a new topology matrix Γ. It is sufficient to find the coefficients c1 and c2 and then apply the above reasoning. Nevertheless, the new repetition vector X' found above G =(2 2 1) is

number

[0053] Hereafter, component x i Starting actor a j and component x j Target actor a j For the general case where two actors, called i and c j We present one way to choose c i =x j / r i and c j =x i / r j By choosing and substituting them in equation (3),

number

[0054] This formula is of course always true, except that this parameter choice depends on the coefficient c i and c jTherefore, for these coefficients to be comprehensive, equation (5) above must be i and consumption j multiplied by the least common multiple ppcm of the rates of the origin and target actors, respectively, i and x j This is divided by the greatest common divisor pgcd.

number

[0055] Coefficient c according to equation (6) i and c j satisfies the consistency condition of equation (3).

[0056] To determine the minimum repetition vector, the initial components of the repetition vectors are multiplied by their greatest common divisor

number

[0057] The coefficient c defined in equation (7) i and c j Of course, this proves equation (3). For example, if actor a i and a j When a new connection is established between actor a and actor b, in order to preserve the graph consistency property, i The component x of the repetition vector corresponding to i C i multiplied by actor a j Component x corresponding to j is the coefficient c j is multiplied by

[0058] FIG. 4 is a flow chart illustrating method steps for validating a data flow system according to a preferred embodiment of the present invention.

[0059] In this method, the consistency of a current unidirectional connection connecting a first current portion of the dataflow graph to a second current portion of the dataflow graph is proven.

[0060] In step E1, the origin actor a i and target actor a j A current unidirectional connection is defined that connects the origin actor a i and target actor a j belong to the first and second current parts of the data flow graph, respectively. i and target actor a j Origin component x' associated with i and target component x” j Generally, the origin component x' is defined as i and target component x” j Note that, x, y, and z may belong to a single current iteration vector X′ representing the first and second current portions of the graph, or to two distinct current iteration vectors X′ and X″ representing the first and second current portions of the graph, respectively.

[0061] The current definition of a unidirectional connection is i Production rate r for i of, and target actor a j Consumption rate r for j Includes allocation of.

[0062] For example, a data flow graph is being constructed and the origin actor a i and target actor a j This case is summarized in the algorithm described in table 1 below. In this algorithm, two iteration vectors X' and X" corresponding to the first and second current parts of the dataflow graph, respectively, are considered. The index of the ith component of vector X' is denoted as i, and the index of the jth component of vector X" is denoted as j. A component x' of vector X' iThe corresponding production rate is r i The component x" of vector X" is written as j The corresponding consumption rate is r j The operations "ppcm" and "pgcd" are denoted as "lcm" and "gcd", respectively. Furthermore, the resulting iteration vector corresponding to the new graph is denoted as X.

[0063] [Table 1]

[0064] In step E2, to avoid pointless computations, the indicator of local consistency of the current unidirectional connections (line 1 of the algorithm) is first verified. This indicator of local consistency is calculated by i x the starting component i The product of these is the consumption rate r j x target component j (i.e., r i *x i =r j *x j ) whether the first and second actors are connected to each other. Regardless of the outcome of this test, two cases are considered in the following steps: the first case where the two actors come from two different repetition vectors, i.e. there was no connection between them before the new connection, and the second case where the two actors come from the same graph, i.e. they have the same repetition vector. According to the outcome of these two different cases, the resulting current repetition vectors, which represent the first and second current parts of the dataflow graph, are defined in steps E4 to E6 or E8 to E9.

[0065] Indeed, if the test of step E2 is positive, i.e. in the case where the current unidirectional connection demonstrates an indicator of local consistency, then in line 2 of the algorithm, the consistency flag (c_flag) is considered to be true and step E3 is performed, otherwise step E7 is performed.

[0066] Steps E3 to E6 concern the case where the current unidirectional connection demonstrates an indicator of local consistency. More specifically, step E3 is i and target actor a j is associated with two distinct current repetition vectors, called the origin repetition vector X' and the target repetition vector X" (i.e., before the current unidirectional connection, origin actor a i and target actor a j If yes, step E4 is performed, otherwise step E6 is performed.

[0067] Step E4 concerns the case where two actors come from two different repetition vectors and the new connection is consistent. In this case the resulting current repetition vector X is constructed by concatenating the source repetition vector X' and the target repetition vector X'', stopping at step E5 where the graph is considered consistent. This corresponds to lines 3-6 of the algorithm above.

[0068] Step E6 is the starting actor a i and target actor a j is related to a single current repetition vector (i.e. originates from the same graph). Thus, in this case, the obtained current repetition vector X is equal to the single current repetition vector X'. In other words, if two actors that it is desired to associate originate from the same repetition vector and the consistency indicator is true, the single current repetition vector X' is not modified and we stop at step E5 where the graph is considered consistent. This corresponds to lines 18 to 20 of the above algorithm.

[0069] However, if the result of step E2 is negative, ie if the current unidirectional connection does not demonstrate an indicator of local consistency, steps E7 to E9 are examined.

[0070] Step E7 is the start actor ai and target actor a j is associated with two distinct current repetition vectors, called the origin repetition vector X' and the target repetition vector X". If no, step E8 is performed, otherwise step E10 is performed.

[0071] In step E8, two natural numbers (i.e., the production coefficient c i and consumption coefficient c j In other words, if the new connection is inconsistent, the coefficient c i and c j is calculated in lines 8-14 of the above algorithm.

[0072] In step E9, the current iteration vector X obtained (line 15 of the algorithm) is calculated on the one hand by the production coefficient c i The starting point repetition vector X' after multiplication by the consumption coefficient c j It is then constructed by concatenating with the target iteration vector X″ after multiplication by . It then stops at step E5 where the graph is considered to be consistent.

[0073] Step E10 is the starting actor a i and target actor a j For the case where,are associated with a single current iteration vector (i.e., the actors come from the same graph) and the current unidirectional connections are identified as inconsistent (i.e., the resulting graph is inconsistent). This corresponds to lines 22-24 of the algorithm.

[0074] FIG. 5 illustrates diagrammatically the construction of a graph according to the method of FIG.

[0075] More specifically, the construction of the graph G5 in Figure 5 is an application of the algorithm presented above. According to this example, four actors A, B, C and D are created, each of them with a repetition vector X=(1). Unidirectional connections are established in the order (A→B), (A→C), (B→D) and (C→D). After the connection (A→B), the algorithm calculates c i =3, c j = 2 and X = (3 2) because the two actors come from two different repetition vectors. Similarly, when a connection (A → C) is established, c i =1, c j = 3 and X = (3 2 3). The connection (B → D) highlights the importance of lines 12-14 in the algorithm. In fact, before line 12, i =c j = 2. However, by using these coefficients, during the update of the repetition vector X, as in line 15, the minimum repetition vector is not obtained, which illustrates the benefit of dividing the coefficients by d (lines 13 and 14). The case represented in lines 17 and 18 of the algorithm shows a connection (C → D) where the repetition vector does not change, and the same holds after the connection (C → D), X = (3 2 3 1).

[0076] The example of Fig. 5 indeed shows the application of the algorithm to a given graph G5. Based on this example, it is observed that lines 8-14 guarantee the set of integer coefficients necessary to obtain a minimum repetition vector. Moreover, the proof of local consistency according to the method of the invention very advantageously shows how the number of required operations is reduced to a minimum, which is very advantageous especially in the case of modular applications.

[0077] FIG. 6 shows a schematic diagram of the connection of two distinct graphs according to the method of the invention.

[0078] The example in Figure 6 is a modular dataflow application, where the dataflow graph G5 shown in Figure 5 is added to the dataflow graph G4 shown in Figure 3 to form a new graph G6. Since the consistency property has already been proven for the two graphs G4 and G5, only a new connection between actor B1 in the first graph G4 and actor B2 in the second graph G5 needs to be proven. The above algorithm is performed on inputs X'=(2 2 1), X"=(3 2 3 1), i=2, j=2, r i = 1, and r j By applying it with =5, c i =5 and c j = 1. The resulting repetition vector, given by the output of the algorithm, is X = (10 10 5 3 2 3 1). The resulting current repetition vector X of graph G6 is i Note that the consumption coefficient c is constructed by concatenating the first repetition vector X′ of graph G4 after multiplication by =5 with the second repetition vector X″ of graph G5. j Note that since =1, the last four components are identical to those of the second repetition vector X″.

[0079] The example of Fig. 6 shows that, in fact, when two consistent graphs G4 and G5 are connected, the method according to the invention allows to prove the consistency property locally, so that it is no longer necessary to re-prove the consistency of the resulting graph G6. In fact, the method according to the invention only proves the new connections and deduces the resulting repetition vector from the two initial repetition vectors. This is a very important advantage over the conventional methods of the prior art, where new topology matrices have to be calculated and new determinants have to be solved.

[0080] Moreover, 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 a second subgraph G5, in which four other actors are created and connected to each other, and finally, the two subgraphs G4 and G5 are connected to each other to form the resulting graph G6.

[0081] Integrity is its only ingredient i Add an additional iteration vector with a equal to 1 to each additional target actor a j Note that this is proved during the construction of each subgraph G4, G5 by assigning to each additional target actor a j is the origin actor a that belongs to the dataflow subgraph constructed by the current unidirectional connection. i is connected to.

[0082] FIG. 7 is a flow chart illustrating the steps of a verification method including an erase operation according to a preferred embodiment of the present invention.

[0083] In this way, the consistency of a dataflow graph is proven during the elimination of unidirectional connections from this graph.

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

[0085] Step E22 is a test to establish whether the initial dataflow graph splits into two distinct parts. If the dataflow graph splits into two distinct parts, step E23 is performed, otherwise step E26 is performed.

[0086] Step E23 concerns the case where, after the elimination of the unidirectional connections, the dataflow graph splits into a first and a second dataflow subgraph. In this case, a first repetition vector X' is constructed by aggregating the components of the initial repetition vector for the first dataflow subgraph and a second repetition vector X" is constructed by aggregating the components of the initial repetition vector for the second dataflow subgraph.

[0087] 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 by dividing the second repetition vector X" by the gcd of its components.

[0088] In step E25, two distinct but consistent data flow graphs are obtained.

[0089] Step E26 concerns the case where, after the elimination of the unidirectional connections, the data flow graph remains connected: in this case, the initial iteration vector is therefore not modified.

[0090] At step E27 there is still a single consistent graph.

[0091] FIG. 8 is a flow chart illustrating steps of a verification method including corrective actions according to a preferred embodiment of the present invention.

[0092] In this way, the consistency of a dataflow graph is proven during the modification of the unidirectional connections of this graph.

[0093] In step E31, a given connection of the data flow graph is determined by determining whether the origin actor a connected by this unidirectional connection i and target actor a j New production rate r' for i and consumption rate r' j is modified by assigning

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

[0095] In step E33, the new production rate r' i and consumption rate r' j The additional operations of the unidirectional connection described by the method of FIG. 4 are applied.

[0096] In step E34, a modified consistent graph is obtained.

[0097] The examples and embodiments presented above highlight the advantages of local proof of consistency properties. In the considered examples, it can be seen that no computation of the topology matrix is ​​necessary, and that the minimal repetition vector can be found very efficiently and with very few computations. Another advantage is that inconsistent elements can be identified and there is no need to reconsider the entire graph to determine its consistency.

[0098] Moreover, it should be noted that the method according to the invention may be applied incrementally during the construction of the dataflow graph, or alternatively, after the graph is constructed, to each of its connections.

[0099] The invention applies to all systems with data flows, and in particular to systems for processing digital signals. In fact, processing systems can be modeled by data flow systems that include actors connected to each other by unidirectional communication connections. Each actor is configured to receive input data and to deliver output data.

[0100] For example, a system for processing digital signals may be a medical imaging system, a computer vision system, a video encoding and compression system, a system for converting audio sampling frequencies, a system for designing tools for wireless communication systems, an on-board system, etc.

[0101] Thus, a system for processing a signal may be modeled by a data flow graph that is constructed according to an incremental approach that may be applied during the construction of the graph. The construction of a non-consistent graph may be stopped as soon as a non-consistent element is identified.

[0102] Moreover, modeling of a system for processing signals can be implemented in a modular manner. Suppose it is desired to model an on-board collision avoidance system in a vehicle and to add a radar module to a camera vision module. Suppose each of the radar and vision modules is described by a consistency graph. The consistency of the combination of the two modules can be determined according to the present invention by proving only the modifications produced by the combination, such as the addition of a connection between the two graphs, thus reducing the number of operations required to prove the consistency.

[0103] FIG. 9 illustrates, by way of example, a proof of consistency in a data flow system that models a multi-channel speech enhancement device, in accordance with the present invention.

[0104] The multi-channel speech enhancement device 21 is connected to a network of four microphones M1 to M4. The noisy signals coming from these four microphones M1 to M4 are processed by a set of signal processing units 23, 25, 27 and 29 provided in the device 21 to extract a signal of the enhanced speech at an output 31. In fact, the speech enhancement device 21 comprises a unit 23 for temporal alignment or synchronization, a Short-Time Fourier Transform (STFT) unit 25, a unit 27 for improving the signal with post-filtering and a unit 29 for adding or combining.

[0105] In particular, the unit for speech enhancement with post-filtering 27 comprises a first MVDR (minimum variance distortion-free response) spatial filtering module 33, a second module for estimating post-filtering 35 and a third post-filtering module 37. The signals e1 to e4 originating from the Fourier transform unit 25 are injected into the first spatial filtering module 33 (beamformer) on the one hand and into the second module for estimating post-filtering 35 on the other hand. Moreover, the output signals of the first module 33 and the second module 35 are injected into the third post-filtering module 37, the output signal of which is injected into the synthesis unit 29. It is to be noted that each of the modules 33, 35 and 37 may comprise a set of actors. The post-filtering module 37 may therefore be modelled by a data flow graph for which a property of consistency is proved for all actors according to the method of the invention.

[0106] Moreover, once the consistency property has been proven for all modules 33, 35, 37 of the application, some of them may be modified. For example, assume that a multi-channel speech enhancement application uses a McCowan postfilter for the postfiltering module 37. This filter may be replaced by a Wiener postfilter in order to obtain a more accurate estimate of the noise spectral density. In this case, there is no need to prove the consistency property again for all modules. Indeed, if a new postfiltering module proves the consistency property, this does not affect the consistency properties of the other modules, from which it can be concluded that the entire application proves the consistency property according to the method of the present invention. [Explanation of symbols]

[0107] 1 verification device, 3 calculator, computer, 5 microprocessor, 7 memory, 9 acquisition module, 11 monitoring module, 21 multi-channel speech enhancement device, 23 signal processing unit, 25 signal processing unit, Fourier transform unit, 27 signal processing unit, 29 signal processing unit, synthesis unit, 31 output, 33 first MVDR (minimum variance distortion-free response) spatial filtering module, 35 second module, 37 third post-filtering module (References) 1. Lee, EA, Messerschmitt, DG: Synchronous data flow. Proceedings of the IEEE 75(9), 1235{1245 (1987). 2. Lee, EA, Messerschmitt, DG: Static scheduling of synchronous data flow programs for digital signal processing; IEEE Transactions on computers 100(1), 24{35 (1987).

Claims

1. A verification method for processing digital signals, executed by a microprocessor of a verification device, comprising: A method for verification, wherein the verification device is modeled 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, validating a data flow system represented by a data flow graph including said actors having the determined production and consumption rates; The verifying step includes incrementally proving, where the consistency of a current unidirectional connection connecting a first current portion of the dataflow graph to a second current portion of the dataflow graph is proven locally at each increment without reconsidering the entire dataflow graph.

2. defining an origin actor and a target actor connected by the current unidirectional connection, the origin actor and the target actor respectively belonging to the first and second current portions of the dataflow graph, the origin actor and the target actor respectively belonging to an origin component x , which may belong to a single current iteration vector or to two current iteration vectors representing the first and second current portions of the dataflow graph; i and the target component x j and The current unidirectional connection has a production rate r i and the consumption rate r for the target actor j and assigning - establishing an indicator of local consistency of the current unidirectional connection, the indicator of local consistency being determined by the production rate r i x the origin component i The product of these is the consumption rate r j multiplied by the target component x j a step of checking whether it is equal to the product of - defining a resulting current iteration vector representing the first and second current portions of the dataflow graph; 2. The method of claim 1, comprising:

3. In the case where the current unidirectional connection demonstrates the indicator of local consistency, The method comprises: if the origin actor and the target actor are associated with two distinct current repetition vectors, called origin repetition vector and target repetition vector, the obtained current repetition vector is constructed by concatenating the origin repetition vector and the target repetition vector; if the origin actor and the target actor are associated with a single current repetition vector, then the obtained current repetition vector is equal to the single current repetition vector; The method of claim 2, further comprising:

4. In the case where the current unidirectional connection does not demonstrate the indicator of local consistency, The method comprises: If the origin actor and the target actor are associated with two distinct current repetition vectors, called origin and target repetition vectors, then the production coefficient c i and consumption coefficient c j Two natural numbers called the production coefficient c i multiplied by the production rate r i x the origin component i and, on the other hand, the consumption coefficient c j multiplied by the consumption rate r j multiplied by the target component x j and the obtained current iteration vector is the product of the production coefficient c i The starting point repetition vector after multiplication by the consumption coefficient c j and the target repetition vector after multiplication by - if the origin actor and the target actor are associated with a single current repetition vector, the current unidirectional connection is identified as inconsistent; The method of claim 2, further comprising:

5. The production coefficient c i and consumption coefficient c j is the formula [0010] In the above formula, m = ppm (r i , r j ) and d = pgcd(x i , x j ) 5. The method of claim 4, wherein:

6. A method according to any one of claims 2 to 5, characterized in that it comprises an operation of adding a new unidirectional connection between the first and second current portions of the dataflow graph.

7. removing unidirectional connections from said data flow graph represented by a single repetition vector, called the initial repetition vector; The operation includes: if, after the elimination of the unidirectional connections, the dataflow graph is partitioned into a first and a second dataflow subgraph, a first repetition vector is constructed by aggregating components of the initial repetition vector for the first dataflow subgraph and a second repetition vector is constructed by aggregating components of the initial repetition vector for the second dataflow subgraph; and if the graph remains connected after the elimination of the unidirectional connections, then the initial repetition vector is not modified; 6. The method according to claim 2, further comprising:

8. Includes the action of fixing unidirectional connections, The operation includes: A new production r' for the source actor and the target actor connected by the unidirectional connection i and consumption r' j assigning a rate; - applying the erase operation of a unidirectional connection according to claim 7, and - applying the additional operation of a unidirectional connection according to claim 6, 8. The verification method according to claims 6 and 7, characterized in that it follows

9. Its only ingredient x i 9. The method according to claim 2, further comprising the step of: (a) verifying the consistency of said dataflow graph during its construction or modification thereof by assigning an additional repetition vector, whose n is equal to 1, to each additional target actor, said additional target actor being connected by said current unidirectional connection to an origin actor belonging to said current dataflow graph being constructed or modified.

10. 1. A device for validating a data flow system represented by a data flow graph including actors having determined production and consumption rates, comprising: The device comprises: an acquisition module (9) configured to acquire data relating to the first and second current portions of the data flow graph; a monitoring module (11) configured to incrementally prove the consistency of the dataflow system by proving, at each increment, the local consistency of current unidirectional connections connecting the first current portion of the dataflow graph to the second current portion of the dataflow graph without reconsidering the entire dataflow graph; A device comprising:

11. 11. The device of claim 10, wherein the data flow system is one of the following processing systems: a medical imaging system, a computer vision system, a video encoding and compression system, a system for converting audio sampling frequencies, a system for designing tools for wireless communication systems, a multi-channel speech enhancement system, and an on-board system.

Citation Information

Patent Citations

  • Supporting device for preparing information processing system design specification

    JP1992062671A

  • Object directional analysis / Design supporting system

    JP1994348482A

  • Design environment and method for generating implementable description in digital system

    JP1999003367A

  • data flow machine

    JP2006522406A

  • Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation

    US20050257194A1