US 7,321,940 B1
Iterative architecture for hierarchical scheduling
Scott C. Smith, Mansfield, Mass. (US); Christopher J. Kappler, Waltham, Mass. (US); Andrew T. Hebb, Harvard, Mass. (US); Gregory S. Goss, Dunstable, Mass. (US); and Robert T. Olsen, Dublin, Calif. (US)
Assigned to Cisco Technology, Inc., San Jose, Calif. (US)
Filed on Jun. 30, 2003, as Appl. No. 10/610,181.
Int. Cl. G06F 15/173 (2006.01); G06F 15/16 (2006.01)
U.S. Cl. 709—240  [709/230; 709/232; 709/233; 709/234] 28 Claims
OG exemplary drawing
 
12. A generic scheduling engine comprising:
a hierarchical scheduling structure, the hierarchical scheduling structure having a set of schedules arranged in a hierarchy, each of the schedules operable to store schedulable entities and having a parent-child relation to at least one other schedule in the hierarchy;
a scheduling core in communication with the hierarchical scheduling structure, the scheduling core having scheduling logic operable to manipulate the schedulable entities within the hierarchical scheduling structure, the scheduling logic further operable to prioritize, according to predetermined rules, allocation of transmission resources to each of the schedulable entities;
a memory responsive to the scheduling logic for storing scheduling resource information corresponding to each of the schedulable entities; and
configuration data indicative of a number of layers in the hierarchical scheduling structure, each of the schedules corresponding to a layer, the number of layers, the hierarchy, and the predetermined rules independent of the hierarchical scheduling structure, the scheduling core, and the memory;
wherein the scheduling core is further operable to iterate through the scheduling hierarchy; and
traverse the schedules in the scheduling hierarchy according to the parent-child associations;
examine, by the scheduling logic, schedulable entities in the traversed schedules; and
propagate the schedulable entities from one schedule to another schedule via the parent child associations according to the scheduling logic.