Patent ID: 7372857

Claim:
A method of scheduling an output of data information from multiple queues, the method comprising the steps of: maintaining a tree having at least two hierarchical levels, a level of the tree including multiple entries, entries of the tree being used to store bits of status information associated with a corresponding one of the queues, the status information for entries of the tree including multiple parameters that are used to determine a relative order for servicing the queues; and comparing the status information including the multiple parameters associated with two or more entries in a level of the tree to identify a higher relative priority queue for servicing; wherein comparing the status information including the multiple parameters associated with two or more entries in a level of the tree to identify a higher relative priority queue for servicing comprises: comparing type fields of two or more entries in the level of the tree, the type fields indicating a type of data stored in each queue associated with each entry and the type fields identifying a priority of servicing of each queue associated with each entry, comparing status information fields of two or more entries in a level of the tree, the status information fields indicating one of the activity or the inactivity of each queue associated with each entry, comparing an empty queue field of two or more entries in the level of the tree, the queue empty fields indicating one of the queue being empty or the queue being non-empty for each queue associated with each entry, and comparing time stamp fields of two or more entries in a level of the tree, the time stamp information indicating a relative age of each queue associated with each entry; and further comprising selecting one of the queue associated with one of the entries as the higher relative priority queue for servicing based upon the comparison of the type fields of two or more entries in the level of the tree, the status information fields of two or more entries in a level of the tree, the empty queue field of two or more entries in the level of the tree, and the time stamp fields of two or more entries in a level of the tree.