Patent ID: 7657882

Claim:
A method for efficiently executing an application program on a dataflow computing device using one or more of its dataflow processing elements that can execute instructions comprising the application program without using a program counter because each dataflow processing element is autonomous and is thus capable of independently sequencing, issuing, and executing the instructions, comprising the steps of: (a) dividing a control flow graph of the application program into a plurality of waves, wherein each wave comprises a connected, directed partially ordered portion of the control flow graph, with a single entrance; (b) providing wave number tags to be used in identifying each individual dynamic instance of data used when executing the application program; (c) adding wave management instructions to the instructions comprising the application program to manage the wave number tags and the wave numbers associated with the waves, in accordance with a predefined instruction set architecture; (d) within each wave, annotating each memory operation with its location in the wave and in regard to its ordering relationship with other memory operations in the wave, to define a wave-ordered memory; and (e) executing the plurality of waves with said one or more dataflow processing elements, using the wave number tags, wave management instructions, and annotations of the memory operations to control the execution of the instructions comprising the application program, so that the execution of the instructions occurs in a desired order within each wave.