IP Library Granted Patent US 9,335,977
Granted Patent B2
US 9,335,977 · App. 14/050,084 · Granted May 10, 2016

Optimization of a data flow program based on access pattern information

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,335,977
App. No.
14/050,084
Granted
May 10, 2016
Kind
B2
Abstract

System and method for optimizing a data flow diagram based on access pattern information are described. Access pattern information for a data flow diagram may be received. The data flow diagram may include a plurality of interconnected actors, e.g., functional blocks, visually indicating functionality of the data flow diagram. The access pattern information may include one or more of: input pattern information specifying cycles on which tokens are consumed by at least one of the actors, or output pattern information specifying cycles on which tokens are produced by at least one of the actors. A program that implements the functionality of the data flow diagram may be generated based at least in part on the access pattern information.

Claims (66)

1. A non-transitory computer accessible memory medium that stores program instructions executable by a processor to implement:

receiving access pattern information for a data flow diagram, wherein the data flow diagram includes a plurality of interconnected actors visually indicating functionality of the data flow diagram, wherein the access pattern information includes one or more of: a) input pattern information specifying the time at which tokens are consumed by at least one of the actors, or b) output pattern information specifying the time at which tokens are produced by at least one of the actors;

generating a program that implements the functionality of the data flow diagram based at least in part on the access pattern information, wherein the functionality comprises digital signal processing (DSP) and communications, industrial test and measurement, or industrial automation and control; and

configuring a hardware device according to the generated program.

2. The non-transitory computer accessible memory medium of claim 1 , wherein the access pattern information includes input pattern information specifying the time at which tokens are consumed by a plurality of the actors.

3. The non-transitory computer accessible memory medium of claim 1 , wherein the input pattern information for an actor comprises information indicating when the actor's input tokens are consumed relative to the beginning of the at least one actor's execution.

4. The non-transitory computer accessible memory medium of claim 1 , wherein the input pattern information specifies the particular time at which input tokens are consumed by the actor.

5. The non-transitory computer accessible memory medium of claim 1 , wherein the input pattern information comprises a plurality of values, wherein each of the values corresponds to a respective cycle during execution of the actor and specifies a number of tokens consumed by the actor on that cycle.

6. The non-transitory computer accessible memory medium of claim 1 , wherein the access pattern information includes output pattern information specifying the time at which tokens are produced by a plurality of the actors.

7. The non-transitory computer accessible memory medium of claim 1 , wherein the output pattern information for an actor comprises information indicating when the actor's output tokens are produced relative to a beginning of the at least one actor's execution.

8. The non-transitory computer accessible memory medium of claim 1 , wherein the output pattern information specifies the particular the time at which output tokens are produced by the actor.

9. The non-transitory computer accessible memory medium of claim 1 , wherein the output pattern information comprises a plurality of values, wherein each of the values corresponds to a respective cycle during execution of the actor and specifies a number of tokens produced by the actor on that cycle.

10. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable by a processor to implement:

converting the data flow diagram into an intermediate representation, wherein said generating the program comprises generating the program from the intermediate representation.

11. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable by a processor to implement:

receiving input specifying additional information for the data flow diagram, wherein the additional information includes one or more of:

one or more execution times for one or more of the actors; or

one or more initiation intervals for one or more of the actors;

wherein said generating the program is further based on the additional information.

12. The non-transitory computer accessible memory medium of claim 1 , wherein said generating the program comprises optimizing one or more features of the program based at least in part on the access pattern information.

13. The non-transitory computer accessible memory medium of claim 12 , wherein the program instructions are further executable by a processor to implement:

receiving user input specifying the one or more features of the program to be optimized.

14. The non-transitory computer accessible memory medium of claim 12 , wherein the one or more features of the program to be optimized include one or more of: buffer size, throughput, or latency.

15. The non-transitory computer accessible memory medium of claim 12 , wherein said optimizing the one or more features of the program comprises optimizing one or more of the following based at least in part on the access pattern information:

throughput of terminals on the actors;

throughput of the program;

clock rate of the program;

a size of a buffer between actors; or

latency between actor inputs and corresponding actor outputs.

16. The non-transitory computer accessible memory medium of claim 12 , wherein said optimizing the one or more features of the program comprises:

automatically formulating an objective function based on the one or more features of the program to be optimized;

automatically generating one or more constraints for the objective function based at least in part on the access pattern information;

applying a solver to the objective function to find at least one minimum value or maximum value that at least one variable of the objective function can take on, subject to the one or more constraints; and

configuring the program according to the at least one minimum value or maximum value, wherein said configuring optimizes the one or more features of the program.

17. The non-transitory computer accessible memory medium of claim 16 , wherein said automatically generating the one or more constraints for the objective function comprises automatically generating one or more of:

at least one producer-consumer constraint;

at least one auto-concurrency constraint;

at least one buffer size constraint; or

at least one resource utilization constraint.

18. The non-transitory computer accessible memory medium of claim 16 , wherein said automatically generating the one or more constraints for the objective function comprises automatically generating one or more of:

a linear constraint;

a quadratic constraint;

a difference constraint;

or a propositional logic constraint.

19. The non-transitory computer accessible memory medium of claim 16 ,

wherein said automatically generating the one or more constraints for the objective function comprises automatically generating a quadratic constraint; and

wherein the method further comprises transforming the quadratic constraint into a linear constraint.

20. The non-transitory computer accessible memory medium of claim 16 , wherein the one or more constraints are all integer linear constraints.

21. The non-transitory computer accessible memory medium of claim 16 , wherein the solver returns an approximation to the at least one minimum value or maximum value rather than an exact value.

22. The non-transitory computer accessible memory medium of claim 16 , wherein the solver is one of a mixed integer linear programming (MILP) solver, mixed integer quadratic constraints programming (MIQCP solver), or satisfiability modulo theories (SMT) solver.

23. The non-transitory computer accessible memory medium of claim 16 , wherein said generating the one or more constraints comprises using a technique for optimizing functions.

24. The non-transitory computer accessible memory medium of claim 16 , wherein said generating the one or more constrains comprises transforming the constraints using a technique for optimizing functions.

25. The non-transitory computer accessible memory medium of claim 16 , wherein said generating the one or more constraints comprises simulating execution of the data flow diagram.

26. The non-transitory computer accessible memory medium of claim 16 , wherein said generating the one or more constraints uses a scheduling scheme.

27. The non-transitory computer accessible memory medium of claim 26 , wherein the scheduling scheme is a static fine-grained scheduling scheme.

28. The non-transitory computer accessible memory medium of claim 1 , wherein the data flow diagram is hierarchical, comprising one or more sub-diagrams.

29. The non-transitory computer accessible memory medium of claim 1 , wherein each actor comprises a respective functional block.

30. A method comprising:

utilizing a computer to perform:

receiving access pattern information for a data flow diagram, wherein the data flow diagram includes a plurality of interconnected actors visually indicating functionality of the data flow diagram, wherein the access pattern information includes one or more of: a) input pattern information specifying the time at which tokens are consumed by at least one of the actors, or b) output pattern information specifying the time at which tokens are produced by at least one of the actors;

generating a program that implements the functionality of the data flow diagram based at least in part on the access pattern information, wherein the functionality comprises digital signal processing (DSP) and communications, industrial test and measurement, or industrial automation and control; and

configuring a hardware device according to the generated program.

31. A non-transitory computer accessible memory medium that stores program instructions executable by a processor to implement:

receiving access pattern information for a data flow specification, wherein the data flow specification specifies a plurality of functional actors that perform functionality according to a data flow model of computation, wherein the access pattern information includes one or more of: a) input pattern information specifying the time at which tokens are consumed by at least one of the functional actors, or b) output pattern information specifying the time at which tokens are produced by at least one of the functional actors;

generating a program that implements the functionality based on the data flow specification and the access pattern information, wherein the functionality comprises digital signal processing (DSP) and communications, industrial test and measurement, or industrial automation and control; and

configuring a hardware device according to the generated program.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2013
From: WANG, GUOQIANG; RAVINDRAN, KAUSHIK; LIMAYE, RHISHIKESH; YANG, GUANG; GHOSAL, ARKADEB; ANDRADE, HUGO A.; ALLEN, JOHN R.; KORNERUP, JACOB; WONG, IAN C.; CORRELL, JEFFREY N.; TRIMBORN, MICHAEL J.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 031751/0602 →