A scheduler for a set of data packet storage devices (e.g., FIFOs)
implements a scheduling algorithm embodied in a look-up table (LUT) that
identifies the next FIFO to select for service based on the current
status of the FIFOs. In one embodiment, in addition to a memory device
used to store the LUT, the scheduler has (1) a latch adapted to store and
forward the LUT output and (2) an extractor that implements a finite
state machine that determines (1) when to enable the latch and (2) when
to forward the identification of the next FIFO to select for service to
the set of FIFOs. Using a LUT enables relatively complicated scheduling
algorithms to be implemented for relatively large numbers of FIFOs
without significantly increasing the execution time of the scheduler.