Claims
- 1. A method for producing a formatted description of a computation representable by a data-flow graph, the method comprising:
generating a source instruction for each input of the data-flow graph; generating a computational instruction for each node of the data-flow graph, the computation instruction for a node comprising a descriptor of the operation performed at the node and a descriptor of each instruction that produces an input to the node; generating a sink instruction for each output of the data-flow graph; and generating a sequential instruction list comprising source instructions, computational instructions and sink instructions.
- 2. A method in accordance with claim 1, wherein the computation instruction further comprises descriptors of at least one of the type, size and signedness of the result of the operation performed at the node.
- 3. A method in accordance with claim 1, wherein the formatted description further comprises an instruction identifier for each instruction of the sequential instruction list and wherein the descriptor of each instruction that produces an input to the node is the instruction identifier of the instruction of the sequential instruction list that produces an input to the node.
- 4. A method in accordance with claim 1, wherein the source instruction is one of an instruction to load a data value from an input data vector, an instruction to load a data value from an accumulator and an instructions to load a data value from a tunnel.
- 5. A method in accordance with claim 1, wherein the sink instruction is one of an instruction to store a data value to an output data vector and an instruction to store a data value to a tunnel.
- 6. A method in accordance with claim 1, wherein the sink instruction is one of an instruction to put a data value into an accumulator, an instruction to add a data value to an accumulator, an instruction to subtract a data value from an accumulator, an instruction to store a data value if it is larger than a value in an accumulator and an instruction to store a data value if it is smaller than a value in an accumulator.
- 7. A method in accordance with claim 1, wherein the order of instructions that change the state of the data-flow graph is determined by the order of the instructions in the sequential instruction list.
- 8. A method in accordance with claim 1, wherein a computational instruction comprises one of an arithmetic instruction, a multiplier instruction, a shift instruction and a logic instruction.
- 9. A method in accordance with claim 1, wherein a node has no more than three inputs.
- 10. A computer comprising:
a plurality of computational units; an interconnection unit for interconnecting the computational units; and a program memory; wherein the computer is directed by a program of instructions stored in the program memory to implement a computation representable by a data-flow graph, and wherein the program of instructions is generated from a sequential instruction list comprising: a source instruction for each input of the data-flow graph; a computational instruction for each node of the data-flow graph, the computation instruction for a node comprising a descriptor of the operation of the node and a descriptor of each instruction that produces an input to the node; and a sink instruction for each output of the data-flow graph.
- 11. A computer in accordance with claim 10, wherein the computation instruction is executable on a computational unit of the plurality of processing units.
- 12. A computer in accordance with claim 10, wherein the interconnection unit of the computer is directed by a program of instructions stored in the program memory.
- 13. A computer in accordance with claim 10, wherein the interconnection unit of the computer comprises one of a data memory, a register file and a re-configurable switch.
- 14. A computer in accordance with claim 10, wherein the computation instruction further comprises descriptors of at least one of the type, size and signedness of the result of the operation performed at the node.
- 15. A computer in accordance with claim 10, wherein the formatted description further comprises an instruction identifier for each instruction of the sequential instruction list and wherein at least one descriptor of an instruction that produces an input to the node is the instruction identifier of the instruction of the sequential instruction list that produces an input to the node.
- 16. A computer in accordance with claim 10, further comprising at least one of:
a data vector input unit; a plurality of registers operable as a data tunnel; and an accumulator; wherein the source instruction is one of an instruction to load a data value from the data vector input unit, an instruction to load a data value from the accumulator and an instructions to load a data value from the data tunnel.
- 17. A computer in accordance with claim 16, wherein the sink instruction is an instruction to store a data value to the data tunnel.
- 18. A computer in accordance with claim 10, further comprising at least one data vector output unit, wherein the sink instruction is an instruction to store a data value to the data vector output unit.
- 19. A computer in accordance with claim 10, further comprising an accumulator, wherein the sink instruction is one of an instruction to put a data value into the accumulator, an instruction to add a data value to the accumulator, an instruction to subtract a data value from the accumulator, an instruction to store a data value if it is larger than a value in the accumulator and an instruction to store a data value if it is smaller than a value in the accumulator.
- 20. A computer in accordance with claim 10, wherein the order of instructions that change the state of the data-flow graph is determined by the order of these instructions in the sequential instruction list.
- 21. A computer in accordance with claim 10, wherein the computational elements include one of an arithmetic unit, a multiplier and a logic unit and wherein a computational instruction comprises one of an arithmetic instruction, a multiplier instruction, a shift instruction and a logic instruction.
- 22. A computer in accordance with claim 10, wherein the computational units are configurable for concurrent processing multiple instructions.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to co-pending patent applications titled “INTERCONNECTION DEVICE WITH INTEGRATED STORAGE” and identified by Attorney Docket No. CML00101D, “MEMORY INTERFACE WITH FRACTIONAL ADDRESSING” and identified by Attorney Docket No. CML00102D, “RE-CONFIGURABLE STREAMING VECTOR PROCESSOR” and identified by Attorney Docket No. CML00107D, “SCHEDULER FOR STREAMING VECTOR PROCESSOR” and identified by Attorney Docket No. CML00108D, which are filed on even day herewith and are hereby incorporated herein by reference.