An improved data structure is provided by modifying a public-domain data
structure known as a "heap". When these improvements are applied, the
resultant data structure is known as a "pile." This invention further
describes a pipelined hardware implementation of a pile. Piles offer many
advantages over heaps: they allow for fast, pipelined hardware
implementations with increased throughput, making piles practical for a
wide variety of new applications; they remove the requirement to track
and update the last position in the heap; they reduce the number of
memory reads accesses required during a delete operation; they require
only ordinary, inexpensive RAM for storage in a fast, pipelined
implementation; and they allow a random mixture of back-to-back insert,
remove, and swap operations to be performed without stalling the
pipeline.