IP Library Granted Patent US 9,870,206
Granted Patent B2
US 9,870,206 · App. 14/937,732 · Granted Jan 16, 2018

Replication structure in a graphical programming language

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,870,206
App. No.
14/937,732
Granted
Jan 16, 2018
Kind
B2
Abstract

System and method for creating a graphical program. A first replication structure may be included in a graphical program, where the first replication structure specifies replication of any graphical program code inside the first replication structure. First graphical program code may be included inside the first replication structure. An implementation of the graphical program may be automatically generated, including generating multiple instances of an implementation of the first graphical program code within the implementation of the graphical program. Executing the graphical program may include executing the multiple instances, e.g., concurrently and/or serially.

Claims (59)

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

including a replication structure in a graphical program, wherein the including comprises displaying a replication structure icon in the graphical program displayed on a display, wherein the replication structure icon comprises an interior portion, wherein the replication structure specifies replication of any graphical program code inside the interior portion of the replication structure icon:

including graphical program code inside the interior portion of the replication structure icon:

automatically generating an implementation of the graphical program, including:

generating multiple instances of an implementation of the graphical program code within the implementation of the graphical program, wherein said generating is performed in response to including the graphical program code inside the interior portion of the replication structure icon:

wherein the multiple instances of an implementation of the graphical program code are executed during execution of the implementation of the graphical program.

2. The non-transitory computer accessible memory medium of claim 1 , wherein at least two of the multiple instances are executed concurrently.

3. The non-transitory computer accessible memory medium of claim 1 , wherein at least two of the multiple instances are executed serially.

4. The non-transitory computer accessible memory medium of claim 1 ,

wherein said generating an implementation of the graphical program comprises compiling the graphical program; and

where said generating multiple instances is performed during said compiling.

5. The non-transitory computer accessible memory medium of claim 1 ,

wherein said generating an implementation of the graphical program comprises generating an intermediate representation of the graphical program; and

where said generating multiple instances is performed during said generating the intermediate representation.

6. The non-transitory computer accessible memory medium of claim 1 , wherein said generating multiple instances is performed at runtime.

7. The non-transitory computer accessible memory medium of claim 1 , wherein the graphical program code includes at least one second replication structure that specifies replication of any graphical program code inside the second replication structure.

8. The non-transitory computer accessible memory medium of claim 1 , wherein the graphical program code includes one or more of:

code that causes side effects; or

code that maintains state information between executions.

9. The non-transitory computer accessible memory medium of claim 1 , wherein the implementation of the graphical program code includes one or more of:

original graphical source code;

an intermediate representation; or

executable code.

10. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure is configured to receive at least one collection as input, and wherein the number of generated instances is determined based on the size of the at least one collection.

11. The non-transitory computer accessible memory medium of claim 10 , wherein the replication structure is configured to implicitly disaggregate collection inputs into scalars and distribute the scalars to respective instances of the multiple instances.

12. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure is configured to implicitly aggregate scalar outputs into collections.

13. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure is configured to:

receive at least one variable as input; and

distribute the at least one variable to each of the instances.

14. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure comprises an instance count terminal configured to receive an input value, and wherein the number of generated instances is determined based on the input value.

15. The non-transitory computer accessible memory medium of claim 1 , wherein the number of generated instances is compile time static.

16. The non-transitory computer accessible memory medium of claim 1 , wherein the number of generated instances is runtime dynamic.

17. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure comprises an instance identifier variable, wherein the instance identifier variable is usable by each implementation of the graphical program code to identify its respective instance.

18. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure is configured to provide inter-instance communication, and wherein at least two of the instances are chained.

19. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure is configured to provide inter-instance communication for the instances, wherein the multiple instances have a connection topology comprising one or more of:

a ring topology;

a line topology;

a star topology;

a tree topology;

a bus topology;

a mesh topology; or

a fully connected topology.

20. The non-transitory computer accessible memory medium of claim 19 , wherein the connection topology is determined at compile time.

21. The non-transitory computer accessible memory medium of claim 19 , wherein the connection topology is determined at runtime.

22. The non-transitory computer accessible memory medium of claim 1 , wherein the replication structure is further configured to specify a runtime debug annotation indicating which instance is currently executing, and wherein said executing the graphical program comprises:

displaying an indication of which instance is currently executing.

23. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable to perform: specifying a number N of instances to generate, wherein N is a positive integer; wherein said generating multiple instances of an implementation of the first graphical program code comprises generating M instances, wherein M is a positive integer that is less than N; and wherein said executing the multiple instances comprises: time multiplexing execution of the M instances, including managing state information, wherein, said time multiplexing execution of the M instances functionally implements execution of the specified N instances.

24. The non-transitory computer accessible memory medium of claim 1 , wherein the program instructions are further executable to perform:

specifying a number N of instances to generate, wherein N is a positive integer;

wherein said generating multiple instances of an implementation of the graphical program code comprises generating M instances, wherein M is a positive integer that is different from N; and

wherein said executing the multiple instances comprises:

executing the M instances, including managing state information, such that said executing the M instances functionally implements execution of the specified N instances.

25. A computer-implemented method for creating a graphical program, the method comprising:

utilizing a computer to implement:

including a replication structure in a graphical program, wherein the including comprises displaying a replication structure icon in the graphical program displayed on a display, wherein the replication structure icon comprises an interior portion, wherein the replication structure specifies replication of any graphical program code inside the interior portion of the replication structure icon:

including graphical program code inside the interior portion of the replication structure icon;

automatically generating an implementation of the graphical program,

including: generating multiple instances of an implementation of the graphical program code within the implementation of the graphical program, wherein said generating is performed in response to including the graphical program code inside the interior portion of the replication structure icon:

wherein the multiple instances of an implementation of the graphical program code are executed during execution of the implementation of the graphical 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 Nov 10, 2015
From: VALDEZ, JULIAN G.; RICHE, TAYLOR L.; FEIEREISEL, NEIL S.; DYE, ROBERT E.; LOFTUS-MERCER, STEPHEN R.; BLASIG, DUSTYN K.; FLETCHER, MARY E.; SCHWAN, BRENT C.; DARK, STEPHEN L.
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 037006/0101 →