In Chap. 2, we concluded that, due to the application requirements we are aiming at, we cannot schedule jobs statically. There are several reasons for this: first, actors have variable execution times, second, the execution of the graph is performed across the multiprocessor, and it may be difficult to guarantee that all processors are synchronized at all times, and also, we cannot statically schedule together two independent transceiver jobs. Therefore, synchronization in our implementation is, at the essence, self-timed: a data flow actor fires immediately whenever its firing conditions are met.
- 15.T. Corman et al. Introduction to Algorithms. McGraw-Hill, 2001.Google Scholar
- 21.M. Geilen. Dataflow scenarios. In IEEE Transactions on Computers, 2010.Google Scholar
- 23.A. Ghamarian, M. Geilen, S. Stuijk, T. Basten, A. Moonen, M. Bekooij, B. Theelen, and M. Mousavi. Throughput analysis of synchronous data flow graphs. In Proc. Int’l Conf. on Application of Concurrency to System Design (ACSD), pages 25–34, June 2006.Google Scholar
- 24.A. H. Ghamarian, S. Stuijk, T. Basten, M. Geilen, and B. D. Theelen. Latency minimization for synchronous data flow graphs. In DSD, pages 189–196, 2007.Google Scholar
- 27.S. Goddard and K. Jeffay. Managing latency and buffer requirements in processing graph chains. The Computer Journal, 44(6), 2001.Google Scholar
- 32.R. Govindarajan and G. G.R. A novel framework for multirate scheduling. In International Conference on Application Specific Array Processors, 1993.Google Scholar
- 81.S. Sriram and S. Bhattacharyya. Embedded Multiprocessors: Scheduling and Synchronization. Marcel Dekker Inc., 2000.Google Scholar