On the scheduling of variable latency functional units

This paper presents a dynamic scheduling mechanism which can control the data flow within many variable latency functional units. If several instructions compete for a resource, the scheduler always selects the oldest instruction. This ensures that the latency of the functional unit is never increased. With simple FIFO queues, such a behavior cannot be guaranteed. It is also shown that the age-based arbitration scheme is well defined. Our scheduler can be implemented with reasonable hardware overhead.