Heapifying consists of comparing the element at the current node with the elements of its children, determining if the heap property is violated, and swapping the appropriate elements if so. This algorithm makes a number of swaps proportional to the number of nodes in the tree, N . The hardware version converts the tree to a heap in a number of clock cycles that is proportional to . Each node of the tree is implemented as a module that can read the contents of its left and right children, compare its own element to these two values, and update its own as well as one of its children's elements. The tree will satisfy the heap property after passes.
Parallelism is exploited in allowing all nodes at one level to be active simultaneously.