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.