US7733873B2

Coordination of calendar searches in a network scheduler

Summary by NHIP

Network Calendar Scheduler System

The system uses a search engine to identify the next frame for removal from flow queues within a network device. It searches time-based calendars using a Current Pointer and Current Time before falling back to non-time-based calendars, loading results into Winner Valid and Winner Location arrays for final selection.

Claim Score by NHIP

Read claim 9, the broadest

Abstract

A system that indicates which frame should next be removed by a scheduler from flow queues within a network device, such as a router, network processor, and like devices, is disclosed. The system includes a search engine that searches a set of calendars under the control of a Finite State Machine (FSM), a current pointer and input signals from array and a clock line providing current time. The results of the search are loaded into a Winner Valid array and a Winner Location array. A final decision logic circuit parses information in the Winner Valid array and Winner Location array to generate a final Winner Valid Signal, the identity of the winning calendar and the winning location. Winning is used to define the status of the calendar in the calendar status array selected as a result of a search process being executed on a plurality of calendars in the calendar status array.

US7733873B2, drawing sheet 1
Sheet 1 of 19

Term

Term ended

Expired 3 October 2023, 3 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

20 claims: 3 independent, 17 dependent

  1. 1
    A system, comprising:a calendar search engine;an array of calendars with outputs operatively coupled to inputs of the search engine, wherein the array of calendars includes a first set of time based calendars in which a search zone over which the search engine searches is delineated by a Current Pointer (CP) and a Current Time (CT) and a second set of non-time based calendars which uses the CP to delineate the beginning of a search zone;a Winner Valid array operatively coupled to the calendar search engine;a Winning Location array operatively coupled to the calendar search engine;and a controller responsive to received signals configured to generate control signals which put the system in an initial state and causes the calendar search engine to, within a predefined time interval, search: each of the first set of time based calendars based on the CP and the CT until a valid result is found;if no valid result is found from the search of the first set of time based calendars, search the second set of non-time calendars based on the CP;and load search valid results into the Winner Valid Array and Winning Location Array.
  2. 9
    Broadest claimClaim Score 54, average(NHIP)A system including:a network processor;a scheduler operatively connected within the network processor;and a timing subsystem operatively coupled to the scheduler, the timing subsystem including: a first set of time based calendars and a second set of non-time based calendars;an array;and a calendar search engine configured to, within a predefined time interval, search: each of the first set of time based calendars until a valid result is found;if no valid result is found from the search of the first set of time based calendars, search the second set of non-time calendars;and load valid search results into the array, wherein the time based calendars are searched based on a current pointer and a current time and the non-time based calendars are searched based on the current pointer.
  3. 17
    A method for scheduling packet transmission, comprising:operatively connecting a first set of time based calendars, a second set of non-time based calendars and an array with a network processor, assigning a queue id to a network processor packet and attaching the queue id to a location of a calendar of the first set of time based calendars delineated by a current pointer and a current time or a location of a calendar of the second set of non-time based calendars delineated by a current pointer;searching, within a predefined time interval: each of the locations of the first set of time based calendars based on a current pointer and a current time until a valid result is found;if no valid result is found from the searching of the first set of time based calendars, searching the second set of non-time based calendars based on a current pointer until a valid result is found;and loading a valid search result into the array.