Book contents
- Frontmatter
- Contents
- Acknowledgments
- 1 Introduction
- 2 Channel-based asynchronous design
- 3 Modeling channel-based designs
- 4 Pipeline performance
- 5 Performance analysis and optimization
- 6 Deadlock
- 7 A taxonomy of design styles
- 8 Synthesis-based controller design
- 9 Micropipeline design
- 10 Syntax-directed translation
- 11 Quasi-delay-insensitive pipeline templates
- 12 Timed pipeline templates
- 13 Single-track pipeline templates
- 14 Asynchronous crossbar
- 15 Design example: the Fano algorithm
- Index
- References
6 - Deadlock
Published online by Cambridge University Press: 26 February 2010
- Frontmatter
- Contents
- Acknowledgments
- 1 Introduction
- 2 Channel-based asynchronous design
- 3 Modeling channel-based designs
- 4 Pipeline performance
- 5 Performance analysis and optimization
- 6 Deadlock
- 7 A taxonomy of design styles
- 8 Synthesis-based controller design
- 9 Micropipeline design
- 10 Syntax-directed translation
- 11 Quasi-delay-insensitive pipeline templates
- 12 Timed pipeline templates
- 13 Single-track pipeline templates
- 14 Asynchronous crossbar
- 15 Design example: the Fano algorithm
- Index
- References
Summary
With new technology come new challenges. Deadlock is an important issue that can manifest itself far more commonly in asynchronous circuits than in their synchronous counterparts.
Deadlock is the failure or inability of a system to proceed and arises when two or more processes expect a response from each other before completing an operation and thus mutually block each other from progressing. A more formal definition is as follows: a set P of processes is said to be deadlocked if
each process pi in P is waiting for an event e ∈ E,
each event e ∈ E is generated only by a process pj ∈ P.
The dining-philosophers problem, covered in Chapter 3, is a classic problem illustrative of deadlock. The general idea is that a number of philosophers surround a dining table with a big plate of food (in this case Chinese pot stickers) in the middle, as illustrated in Figure 6.1 for four philosophers. They spend time either thinking or eating, but because adjacent philosophers share one chopstick, they cannot eat simultaneously. A philosopher must have both the chopsticks to his or her left and right in order to eat. The philosophers never speak to each other, an aspect that introduces the possibility of a deadlock in which every philosopher holds, say, the chopstick on the left and is waiting for the chopstick on the right. This system has reached deadlock because there is a cycle of ungranted requests.
- Type
- Chapter
- Information
- A Designer's Guide to Asynchronous VLSI , pp. 106 - 115Publisher: Cambridge University PressPrint publication year: 2010