Deadlock-Free Message Routing in Multiprocessor Interconnection Networks
IEEE Transactions on Computers
IEEE Transactions on Parallel and Distributed Systems
A Distributed Graph Algorithm: Knot Detection
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Interconnection Networks: An Engineering Approach
Interconnection Networks: An Engineering Approach
Structured Theory Development for a Mechanized Logic
Journal of Automated Reasoning
A Necessary and Sufficient Condition for Deadlock-Free Adaptive Routing in Wormhole Networks
IEEE Transactions on Parallel and Distributed Systems
Quantification in tail-recursive function definitions
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
Operating Systems: Internals and Design Principles
Operating Systems: Internals and Design Principles
Formal specification of networks-on-chips: deadlock and evacuation
Proceedings of the Conference on Design, Automation and Test in Europe
Easy Formal Specification and Validation of Unbounded Networks-on-Chips Architectures
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Hi-index | 0.00 |
Deadlocks occur in interconnection networks as messages compete for free channels or empty buffers. Deadlocks are often associated with a circular wait between processes and resources. In the context of networks, Duato proved that for adaptive routing networks a cyclic dependency is not sufficient to create a deadlock. He proposed deadlock-free routing techniques allowing cyclic dependencies between channels or buffers. His work was a breakthrough. It was also counterintuitive and only a complex mathematical proof could convince his peers about the soundness of his theory. We define a necessary and sufficient condition that captures Duato's intuition but that is more intuitive and leads to a simpler proof. However, our condition is logically equivalent to Duato's one. We used the ACL2 theorem proving system to formalize our condition and its proof. In particular, we used two features of ACL2, namely the encapsulation principle and quantifiers, to perform an elegant formalization based on second order functions.