A method of synchronizing data flow in a data flow processor, the data flow processor including processing array elements arranged in a multi-dimensional pattern and a plurality of external buses, each bus arranged to link at least three of the processing array elements, comprising the steps of:
- transmitting a ready signal by a first element of the processing array elements via one of the plurality of external buses;
- receiving the ready signal by a second element of the processing array elements;
- after receiving the ready signal, transmitting an acknowledgment signal from the second element to the first element via the external bus only if the second element is in a first state, the first state being a state in which the second element is capable of accepting data;
- entering a wait state by the first element if the acknowledgment signal is not received within one clock cycle;
- and
- processing by the first element a next data after the first acknowledgment signal is received.