Patent ID: 6956818

Claim:
A method of scheduling data for transmission over a communication link based on priorities assigned to the data, comprising: receiving multiple descriptors at a communication interface device, each of said descriptors describing a data portion having an associated priority; storing said descriptors in a plurality of memories on said communication interface device, wherein each of said memories is configured to store one or more of said descriptors describing data associated with a predetermined priority; maintaining a dynamic weight for each of said plurality of memories, wherein each said dynamic weight corresponds to a threshold amount of data associated with said predetermined priority; and servicing said plurality of memories, wherein each said servicing of one of said plurality of memories comprises: (a) receiving a descriptor from said serviced memory; (b) retrieving data described by said received descriptor, wherein the amount of retrieved data may exceed said threshold amount; (c) scheduling said data for transmission via the communication link; (d) determining whether an amount of data scheduled during said servicing for transmission via said communication link exceeds said threshold amount of data corresponding to said dynamic weight for said serviced memory; (e) repeating states (a) through (d) for a next descriptor in said serviced memory if said amount of data scheduled for transmission during said servicing is less than said threshold amount of data; and (f) if said amount of data scheduled for transmission exceeds said threshold amount of data, decreasing said threshold for a next servicing of said serviced memory.