A first-in-first-out (FIFO) queue optimized to reduce latency in dequeuing data
items from the FIFO. In one implementation, a FIFO queue additionally includes
buffers connected to the output of the FIFO queue and bypass logic. The buffers
act as the final stages of the FIFO queue. The bypass logic causes input data items
to bypass the FIFO and to go straight to the buffers when the buffers are able
to receive data items and the FIFO queue is empty. In a second implementation,
arbitration logic is coupled to the queue. The arbitration logic controls a multiplexer
to output a predetermined number of data items from a number of final stages of
the queue. In this second implementation, the arbitration logic gives higher priority
to data items in later stages of the queue.