Runtime deadlock analysis for system level design

In the design of highly complex, heterogeneous and concurrent systems, deadlock detection remains an important issue. In this paper, we systematically analyze the synchronization dependencies in system-level designs. We propose a data structure called the dynamic synchronization dependency graph, which captures the runtime blocking dependencies among concurrent processes. A loop-detection algorithm is then used to detect deadlocks and help designers quickly isolate and identify modeling errors that cause the deadlock problems. We demonstrate our approach through two publicly available system-level modeling languages, SystemC and Metropolis, and two real world design examples, which are complex system-level functional models for video processing.

[1]  Arthur Charlesworth,et al.  The multiway rendezvous , 1987, TOPL.

[2]  Jack Donovan,et al.  SystemC: From the Ground Up , 2004 .

[3]  Patrice Godefroid,et al.  Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract) , 1993, CAV.

[4]  Luciano Lavagno,et al.  Metropolis: An Integrated Electronic System Design Environment , 2003, Computer.

[5]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[6]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[7]  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).

[8]  Murali Krishnamurthi,et al.  Deadlock detection and resolution in simulation models , 1994, Proceedings of Winter Simulation Conference.

[9]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[10]  Mukesh Singhal,et al.  Deadlock detection in distributed systems , 1989, Computer.

[11]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[12]  Tohru Kikuno,et al.  A Distributed Algorithm for Deadlock Detection and Resolution , 1984, Symposium on Reliability in Distributed Software and Database Systems.

[13]  Mohammad Taghi Hajiaghayi,et al.  The Generalized Deadlock Resolution Problem , 2005, ICALP.

[14]  Om Prakash Gangwal,et al.  A scalable and flexible data synchronization scheme for embedded HW-SW shared-memory systems , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[15]  A. Nico Habermann,et al.  Prevention of system deadlocks , 1969, CACM.

[16]  Luciano Lavagno,et al.  Constraints specification at higher levels of abstraction , 2001, Sixth IEEE International High-Level Design Validation and Test Workshop.

[17]  Arie Shoshani,et al.  System Deadlocks , 1971, CSUR.

[18]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[19]  Jayaram Bhasker A SystemC Primer , 2002 .

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

[21]  Edgar Knapp,et al.  Deadlock detection in distributed databases , 1987, CSUR.

[22]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.