A parallel multi-unit resource deadlock detection algorithm with O ( log 2 ( min ( m , n ) ) ) overall run-time complexity
Current MPSoCs typically consist of less than a dozen processing units. Future MPSoCs are likely to integrate many more. With this trend, dozens of applications can be running on an MPSoC concurrently and application deadlock on MPSoCs will become a severe problem. To address the application deadlock problem in current and future MPSoCs, this article proposes a parallel multi-unit resource deadlock detection algorithm, incorporating four contributions: (1)a classification of resource events that enables each category of events to be handled efficiently, (2)a parallel node hopping mechanism that explores the entire graph exponentially in parallel to obtain information about reachable processes of every resource, (3)an innovative hardware implementation of the node hopping mechanism using bit-wise computations, and (4)proofs of correctness and run-time complexity of the proposed algorithm. Based on information about reachable processes as well as sink nodes in the graph, the proposed algorithm detects deadlock in O(1) run-time. Compared with the worst case run-time of any previous algorithm, which employs a single scheme to handle all resource events, ours is considerably reduced to O(log2(min(m,n))) O ( log 2 ( min ( m , n ) ) ) when implemented in hardware, where m m and n n are the number of processes and resources, respectively.
deadlock detection deadlock detection in hardware multi-unit resource systems chip multiprocessor graph traversing reachability computation parallel algorithm digital logic design rtos real-time embedded systems