Skip to Main Content
This article describes a novel parallel multi-unit resource deadlock detection algorithm (MDDA) and its hardware implementation (MDDU). The contributions are (i) the first O(1) hardware deadlock detection, (ii) reduced O(min(m, n)) preparation, where m and n are the number of processes and resources, respectively, and (iii) support for multi-unit resources. O(min(m, n)), previously O(mtimesn), is achieved by performing all the searches for sink nodes for each and every resource in parallel in hardware over two matrices representing resource allocations as well as other auxiliary matrices. MDDU provides a fast and deterministic deadlock detection mechanism for multiprocessor system-on-chips (MPSoCs), which we predict will become prevalent in the near future in system designs. Our experiments demonstrate that MDDU always takes two clock cycles to detect deadlock regardless the size of the system. Lastly, the MPSoC area overhead due to MDDU is small, approximately 0.024 percent for MDDU16 x 16 on our example MPSoC.