Claims Analysis
Total Claims: 52
Claim 1
Independent Claim
315 words
A method for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions, the method comprising: (a) using a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block; (b) using a second program construct of the plurality of program constructs to provide for automatic indexing of reference to a buffer object; (c) using a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations; (d) using a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time; (e) using a fifth program construct to provide for data flow among the plurality of heterogeneous computational elements by defining a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block; (f) using a sixth program construct of the plurality of program constructs to provide array accessing with a predetermined address pattern; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 2
Independent Claim
315 words
A method for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions, the method comprising: (a) using a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block; (b) using a second program construct of the plurality of program constructs to provide for automatic indexing of reference to a buffer object; (c) using a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations; (d) using a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time; (e) using a fifth program construct to provide for data flow among the plurality of heterogeneous computational elements by defining a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block; (f) using a sixth program construct of the plurality of program constructs to provide array accessing with a predetermined address pattern; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 3
Dependent Claim
28 words
The method of claim 1 , wherein step (a) further comprises: using a dataflow command for informing a compiler that included commands are for concurrent performance in parallel.
Claim 4
Dependent Claim
34 words
The method of claim 1 , wherein steps (b) and (e) further comprise: using the channel object for providing a buffer for storing data; and using a stream variable for referencing the channel object.
Claim 5
Dependent Claim
43 words
The method of claim 3 , wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
Claim 6
Dependent Claim
36 words
The method of claim 1 , wherein step (c) further comprises: using a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values.
Claim 7
Dependent Claim
28 words
The method of claim 1 , wherein step (d) further comprises: using an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations.
Claim 8
Dependent Claim
25 words
The method of claim 1 , wherein step (f) further comprises: using an iterator variable for accessing the array in a predetermined, fixed address pattern.
Claim 9
Dependent Claim
48 words
The method of claim 1 , wherein the sixth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
Claim 10
Dependent Claim
32 words
The method of claim 1 , further comprising: (g) using a seventh program construct of the plurality of program constructs to provide for a fixed number of loop iterations at run time.
Claim 11
Dependent Claim
43 words
The method of claim 9 , wherein step (g) further comprises: using a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
Claim 12
Dependent Claim
28 words
The method of claim 1 , wherein the first program construct has a semantics comprising: a first program construct identifier, followed by a plurality of included program statements.
Claim 13
Dependent Claim
45 words
The method of claim 11 , wherein the first program construct has a syntax comprising: a dataflow designation; a commencement designation and a termination designation following the dataflow designation; and the plurality of included program statements contained within the commencement designation and the termination designation.
Claim 14
Dependent Claim
43 words
The method of claim 1 , wherein the fourth program construct has a semantics comprising: a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
Claim 15
Independent Claim
321 words
A system for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions, the system comprising: means for using a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block; means for using a second program construct of the plurality of program constructs to provide for automatic indexing of reference to a buffer object; means for using a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations; means for using a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time; means for using a fifth program construct to provide for data flow among the plurality of heterogeneous computational elements by defining a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block; means for using a sixth program construct of the plurality of program constructs to provide array accessing with a predetermined address pattern; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 16
Independent Claim
321 words
A system for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions, the system comprising: means for using a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block; means for using a second program construct of the plurality of program constructs to provide for automatic indexing of reference to a buffer object; means for using a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations; means for using a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time; means for using a fifth program construct to provide for data flow among the plurality of heterogeneous computational elements by defining a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block; means for using a sixth program construct of the plurality of program constructs to provide array accessing with a predetermined address pattern; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 17
Dependent Claim
36 words
The system of claim 14 , wherein the means for using the first program construct further comprises: means for using a dataflow command for informing a compiler that included commands are for concurrent performance in parallel.
Claim 18
Dependent Claim
51 words
The system of claim 14 , wherein the means for using the second program construct and the means for using a fifth program construct further comprise: means for using the channel object for providing a buffer for storing data; and means for using a stream variable for referencing the channel object.
Claim 19
Dependent Claim
43 words
The system of claim 16 , wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
Claim 20
Dependent Claim
44 words
The system of claim 14 , wherein the means for using the third program construct further comprises: means for using a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values.
Claim 21
Dependent Claim
36 words
The system of claim 14 , wherein the means for using the fourth program construct further comprises: means for using an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations.
Claim 22
Dependent Claim
33 words
The system of claim 14 , wherein the means for using the sixth program construct further comprises: means for using an iterator variable for accessing the array in a predetermined, fixed address pattern.
Claim 23
Dependent Claim
48 words
The system of claim 14 , wherein the sixth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
Claim 24
Dependent Claim
27 words
The system of claim 14 , further comprising: means for using a seventh program construct to provide for a fixed number of loop iterations at run time.
Claim 25
Dependent Claim
51 words
The system of claim 22 , wherein the means for using the seventh program construct further comprises: means for using a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
Claim 26
Dependent Claim
28 words
The system of claim 14 , wherein the first program construct has a semantics comprising: a first program construct identifier, followed by a plurality of included program statements.
Claim 27
Dependent Claim
45 words
The system of claim 24 , wherein the first program construct has a syntax comprising: a dataflow designation; a commencement designation and a termination designation following the dataflow designation; and the plurality of included program statements contained within the commencement designation and the termination designation.
Claim 28
Dependent Claim
43 words
The system of claim 14 , wherein the fourth program construct has a semantics comprising: a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
Claim 29
Dependent Claim
313 words
A tangible medium storing computer readable software for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions, the tangible medium storing computer readable software comprising: a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block; a second program construct of the plurality of program constructs to provide for automatic indexing of reference to a buffer object; a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations; a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time; a fifth program construct to provide for data flow among the plurality of heterogeneous computational elements by using a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block; a sixth program construct of the plurality of program constructs to provide array accessing with a predetermined address pattern; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 30
Dependent Claim
313 words
A tangible medium storing computer readable software for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions, the tangible medium storing computer readable software comprising: a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block; a second program construct of the plurality of program constructs to provide for automatic indexing of reference to a buffer object; a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations; a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time; a fifth program construct to provide for data flow among the plurality of heterogeneous computational elements by using a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block; a sixth program construct of the plurality of program constructs to provide array accessing with a predetermined address pattern; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 31
Dependent Claim
36 words
The tangible medium storing computer readable software programming language of claim 27 , wherein the first program construct further comprises: a dataflow command for informing a compiler that included commands are for concurrent performance in parallel.
Claim 32
Dependent Claim
42 words
The tangible medium storing computer readable software of claim 27 , wherein the second program construct and the fifth program construct further comprise: a channel object for providing a buffer for storing data; and a stream variable for referencing the channel object.
Claim 33
Dependent Claim
48 words
The tangible medium storing computer readable software of claim 24 , wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
Claim 34
Dependent Claim
42 words
The tangible medium storing computer readable software of claim 29 , wherein the third program construct further comprises: a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values.
Claim 35
Dependent Claim
34 words
The tangible medium storing computer readable software of claim 24 , wherein the fourth program construct further comprises: an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations.
Claim 36
Dependent Claim
31 words
The tangible medium storing computer readable software of claim 27 , wherein the sixth program construct further comprises: an iterator variable for accessing the array in a predetermined, fixed address pattern.
Claim 37
Dependent Claim
53 words
The tangible medium storing computer readable software of claim 27 , wherein the sixth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
Claim 38
Dependent Claim
35 words
The tangible medium storing computer readable software of claim 27 , further comprising: a seventh program construct of the plurality of program constructs to provide for a fixed number of loop iterations at run time.
Claim 39
Dependent Claim
49 words
The tangible medium storing computer readable software of claim 35 , wherein the seventh program construct further comprises: a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
Claim 40
Dependent Claim
33 words
The tangible medium storing computer readable software of claim 27 , wherein the first program construct has a semantics comprising: a first program construct identifier, followed by a plurality of included program statements.
Claim 41
Dependent Claim
50 words
The tangible medium storing computer readable software of claim 37 , wherein the first program construct has a syntax comprising: a dataflow designation; a commencement designation and a termination designation following the dataflow designation; and the plurality of included program statements contained within the commencement designation and the termination designation.
Claim 42
Dependent Claim
48 words
The tangible medium storing computer readable software of claim 27 , wherein the fourth program construct has a semantics comprising: a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
Claim 43
Independent Claim
481 words
A method for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions,, the method comprising: using a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block, the first program construct defined as a dataflow command for informing a compiler that included commands are for concurrent performance in parallel; using a second program construct of the plurality of program constructs to provide for data flow among the plurality of heterogeneous computational elements by using a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block, the second program construct further providing for automatic indexing of reference to the channel object, the channel object for providing a buffer for storing data, the second program construct further defined as a stream variable for referencing the channel object; using a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations, the third program construct defined as a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values; using a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time, the fourth program construct defined as an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations; using a fifth program construct of the plurality of program constructs to provide array accessing, the fifth program construct defined as an iterator variable for accessing the array in a predetermined, fixed address pattern; using a sixth program construct of the plurality of program constructs to provide for a fixed number of loop iterations at run time, the sixth program construct defined as a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 44
Independent Claim
481 words
A method for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions,, the method comprising: using a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block, the first program construct defined as a dataflow command for informing a compiler that included commands are for concurrent performance in parallel; using a second program construct of the plurality of program constructs to provide for data flow among the plurality of heterogeneous computational elements by using a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block, the second program construct further providing for automatic indexing of reference to the channel object, the channel object for providing a buffer for storing data, the second program construct further defined as a stream variable for referencing the channel object; using a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations, the third program construct defined as a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values; using a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time, the fourth program construct defined as an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations; using a fifth program construct of the plurality of program constructs to provide array accessing, the fifth program construct defined as an iterator variable for accessing the array in a predetermined, fixed address pattern; using a sixth program construct of the plurality of program constructs to provide for a fixed number of loop iterations at run time, the sixth program construct defined as a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 45
Dependent Claim
43 words
The method of claim 40 , wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
Claim 46
Dependent Claim
48 words
The method of claim 40 , wherein the fifth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
Claim 47
Dependent Claim
49 words
The method of claim 40 , wherein the first program construct has a semantics comprising: a first program construct identifier; a commencement designation and a termination designation following the first program construct identifier; and a plurality of included program statements contained within the commencement designation and the termination designation.
Claim 48
Dependent Claim
43 words
The method of claim 40 , wherein the fourth program construct has a semantics comprising: a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
Claim 49
Dependent Claim
522 words
A tangible medium storing computer readable software for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions,, the tangible medium storing computer readable software comprising: a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block, the first program construct defined as a dataflow command for informing a compiler that included commands are for concurrent performance in parallel; a second program construct of the plurality of program constructs to provide for data flow among the plurality of heterogeneous computational elements by using a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block, the second program construct further providing for automatic indexing of reference to the channel object, the channel object for providing a buffer for storing data, the second program construct further defined as a stream variable for referencing the channel object, wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type; a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations, the third program construct defined as a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values; a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time, the fourth program construct defined as an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations; a fifth program construct of the plurality of program constructs to provide array accessing, the fifth program construct defined as an iterator variable for accessing the array in a predetermined, fixed address pattern; a sixth program construct of the plurality of program constructs to provide for a fixed number of loop iterations at run time, the sixth program construct defined as a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 50
Dependent Claim
522 words
A tangible medium storing computer readable software for programming an adaptive computing integrated circuit for a plurality of functions, the adaptive computing integrated circuit having a plurality of heterogeneous computational elements, the plurality of heterogeneous computational elements capable of being configured and reconfigured for performance of the plurality of functions,, the tangible medium storing computer readable software comprising: a first program construct of a plurality of program constructs to provide for execution of a computational block in parallel by a subset of heterogeneous computational elements of the plurality of heterogeneous computational elements, wherein the first program construct is capable of being compiled, mapped and scheduled to select, and to provide configuration information to configure, the subset of heterogeneous computational elements for parallel execution of the computational block, the first program construct defined as a dataflow command for informing a compiler that included commands are for concurrent performance in parallel; a second program construct of the plurality of program constructs to provide for data flow among the plurality of heterogeneous computational elements by using a channel object having an output data stream from a data producing computational block and an input data stream to a data consuming computational block, the second program construct further providing for automatic indexing of reference to the channel object, the channel object for providing a buffer for storing data, the second program construct further defined as a stream variable for referencing the channel object, wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type; a third program construct of the plurality of program constructs for maintaining a previous value of a variable between process invocations, the third program construct defined as a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values; a fourth program construct of the plurality of program constructs to provide for iterations having a predetermined number of iterations at a compile time, the fourth program construct defined as an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations; a fifth program construct of the plurality of program constructs to provide array accessing, the fifth program construct defined as an iterator variable for accessing the array in a predetermined, fixed address pattern; a sixth program construct of the plurality of program constructs to provide for a fixed number of loop iterations at run time, the sixth program construct defined as a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed; and wherein the plurality of program constructs are capable of being compiled, mapped and scheduled to select one or more heterogeneous computational elements for performance of the plurality of functions, and further to provide configuration information to determine a plurality of configurations and reconfigurations of the plurality of heterogeneous computational elements for performance of the plurality of functions.
Claim 51
Dependent Claim
53 words
The tangible medium storing computer readable software of claim 45 , wherein the fifth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
Claim 52
Dependent Claim
92 words
The tangible medium storing computer readable software of claim 45 , wherein the first program construct has a semantics comprising: a first program construct identifier; a commencement designation and a termination designation following the first program construct identifier; and a plurality of included program statements contained within the commencement designation and the termination designation; and wherein the fourth program construct has a semantics comprising: a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.