Artificial deadlock detection in process networks for ECLIPSE

Kahn process network (KPN) is a popular model of computation for describing streaming applications. In a KPN model, processes communicate through unbounded unidirectional FIFOs. When theoretically unbounded FIFOs are implemented using finite memory, artificial deadlocks can occur due to one or more FIFOs having insufficient sizes. Generally, a system designer must be able to make a design time trade-off between execution time and memory usage, preferably using no more memory than required for obtaining a certain execution time. But it is practically impossible to decide at design time, FIFO sizes that are sufficient to run the application without any artificial deadlocks. Hence, there is a need for runtime mechanism for handling the artificial deadlock situations in process networks. Existing mechanisms detect artificial deadlocks only after all KPN processes block. This results in excessive blocking of processes and an application that appears to hang. In this paper, we present an improved mechanism for early detection of artificial deadlocks and its implementation on ECLIPSE (extended CPU local irregular processing architecture), an application domain specific architecture.

[1]  Mudit Goel,et al.  Process Networks in Ptolemy II , 1998 .

[2]  Brian L. Evans,et al.  Deadlock detection for distributed process networks , 2005, Proceedings. (ICASSP '05). IEEE International Conference on Acoustics, Speech, and Signal Processing, 2005..

[3]  Alexandru Turjan,et al.  A Compile Time Based Approach for Solving Out-of-Order Communication in Kahn Process Networks , 2002, ASAP.

[4]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[5]  Twan Basten,et al.  Efficient Execution of Process Networks , 2001 .

[6]  Erwin A. de Kock,et al.  YAPI: application modeling for signal processing systems , 2000, Proceedings 37th Design Automation Conference.

[7]  N Bharath Early Detection Of Artificial Deadlocks In Process Networks , 2005 .

[8]  Evert-Jan D. Pol,et al.  Design of multi-tasking coprocessor control for Eclipse , 2002, Proceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627).

[9]  Twan Basten,et al.  Requirements on the Execution of Kahn Process Networks , 2003, ESOP.

[10]  Ed F. Deprettere,et al.  Compaan: deriving process networks from Matlab for embedded signal processing architectures , 2000, CODES '00.

[11]  Pieter van der Wolf,et al.  An MPEG-2 decoder case study as a driver for a system level design methodology , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[12]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[13]  Don P. Mitchell,et al.  A distributed algorithm for deadlock detection and resolution , 1984, PODC '84.

[14]  Om Prakash Gangwal,et al.  Eclipse: heterogeneous multiprocessor architecture for flexible media processing , 2002, Proceedings 16th International Parallel and Distributed Processing Symposium.

[15]  James C. Tiernan,et al.  An efficient search algorithm to find the elementary circuits of a graph , 1970, CACM.

[16]  Thomas Martyn Parks,et al.  Bounded scheduling of process networks , 1996 .