1. A method of processing data comprising: receiving a first command instructing a first process to be executed on a processing circuit, the first command including a first indication that may be used to indicate when the first process has completed execution; receiving a second command instructing a second process to be executed on the processing circuit, the second command including a second indication that may be used to indicate when the second process has completed execution; receiving a third command instructing a third process to be executed on the processing unit, the third command instructing the third process not to begin until the first indication and the second indication have been received; and storing data generated by the third process in a memory, wherein at least portions of the first and second processes are executed concurrently on the processing circuit.