IP Library Granted Patent US 7,801,164
Granted Patent B2
US 7,801,164 · App. 11/412,917 · Granted Sep 21, 2010

Two dimensional timeout table mechanism with optimized delay characteristics

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,801,164
App. No.
11/412,917
Granted
Sep 21, 2010
Kind
B2
Abstract

Improved timeout table mechanism are disclosed. By way of example, a method for providing timeout delays for data queues in a processing system includes the following steps. A timeout structure is maintained. The timeout structure includes two or more groups, each group including two or more bins, each bin having a range of timeout delay values associated therewith, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group. A timeout delay value to be assigned to a data queue in the processing system is selected.

Claims (48)

1. Apparatus for providing timeout delays for data queues in a processing system, comprising:

a memory; and

a processor coupled to the memory and operative to: (i) maintain a timeout structure comprising two or more groups, each group comprising two or more bins, each group having associated therewith a range of timeout delay values, each bin of a given group having associated therewith a portion of the range of timeout delay values associated with the given group, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group; and (ii) select a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system.

2. The apparatus of claim 1 , wherein the processor is further operative to obtain a desired timeout value for the data queue to be delayed.

3. The apparatus of claim 2 , wherein the processor is further operative to compare the desired timeout value to the delay range for each group to find the group with the smallest delay range that can accommodate the desired timeout value.

4. The apparatus of claim 1 , wherein the processor is further operative to maintain two or more memory elements from which queues are dispatched when the timeout delay value assigned thereto has expired.

5. The apparatus of claim 1 , wherein the processor comprises a network processor and the data queue comprises a packet data queue.

6. The apparatus of claim 1 , wherein the processor and at least a portion of the memory are implemented on an integrated circuit.

7. Apparatus for providing timeout delays for data queues in a processing system, comprising:

a memory; and

a processor coupled to the memory and operative to: (i) maintain a timeout structure comprising two or more groups, each group comprising two or more bins, each bin having a range of timeout delay values associated therewith, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group; and (ii) select a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system;

wherein the processor is further operative to: obtain a desired timeout value for the data queue to be delayed; compare the desired timeout value to a delay range for each group to find the group with the smallest delay range that can accommodate the desired timeout value; and compute for each bin a value of (current time value+desired timeout value+(bin period value −1)) divided by the number of bins available in the group.

8. The apparatus of claim 7 , wherein the processor is further operative to select the bin to which the data queue is to be assigned based on the computed values.

9. Apparatus for providing timeout delays for data queues in a processing system, comprising:

a memory; and

a processor coupled to the memory and operative to: (i) maintain a timeout structure comprising two or more groups, each group comprising two or more bins, each bin having a range of timeout delay values associated therewith, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group; and (ii) select a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system;

wherein the processor is further operative to maintain two or more memory elements from which queues are dispatched when the timeout delay value assigned thereto has expired; and

wherein the processor is further operative to dispatch a timed-out queue from one of the two or more memory elements based on the weights associated with each group.

10. Apparatus for providing timeout delays for data queues in a processing system, comprising:

a memory; and

a processor coupled to the memory and operative to: (i) maintain a timeout structure comprising two or more groups, each group comprising two or more bins, each bin having a range of timeout delay values associated therewith, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group; and (ii) select a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system;

wherein the processor is further operative to maintain two or more memory elements from which queues are dispatched when the timeout delay value assigned thereto has expired; and

wherein the processor is further operative to dispatch a timed-out queue from one of the two or more dispatch memory elements based on the weights associated with each group as modified by the number of entries in the two or more dispatch memory elements.

11. A method for providing timeout delays for data queues in a processing system, the method comprising the steps of:

maintaining, by a processor in the processing system, a timeout structure comprising two or more groups, each group comprising two or more bins, each group having associated therewith a range of timeout delay values, each bin of a given group having associated therewith a portion of the range of timeout delay values associated therewith the given group, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group; and

selecting, by a processor in the processing system, a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system.

12. The method of claim 11 , further comprising the step of obtaining a desired timeout value for the data queue to be delayed.

13. The method of claim 12 , further comprising the step of comparing the desired timeout value to the delay range for each group to find the group with the smallest delay range that can accommodate the desired timeout value.

14. The method of claim 11 , further comprising the step of maintaining two or more memory elements from which queues are dispatched when the timeout delay value assigned thereto has expired.

15. The method of claim 11 , wherein the timeout structure is shared across multiple output schedulers.

16. A method for providing timeout delays for data queues in a processing system, the method comprising the steps of:

maintaining, by a processor in the processing system, a timeout structure comprising two or more groups, each group comprising two or more bins, each bin having a range of timeout delay values associated therewith, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group; and

selecting, by a processor in the processing system, a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system;

wherein the method further comprises the steps of: obtaining a desired timeout value for the data queue to be delayed; comparing the desired timeout value to a delay range for each group to find the group with the smallest delay range that can accommodate the desired timeout value; and computing for each bin a value of (current time value+desired timeout value+(bin period value −1)) divided by the number of bins available in the group.

17. The method of claim 16 , further comprising the step of selecting the bin to which the data queue is to be assigned based on the computed values.

18. A method for providing timeout delays for data queues in a processing system, the method comprising the steps of:

maintaining, by a processor in the processing system, a timeout structure comprising two or more groups, each group comprising two or more bins, each bin having a range of timeout delay values associated therewith, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group;

selecting, by a processor in the processing system, a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system;

maintaining two or more memory elements from which queues are dispatched when the timeout delay value assigned thereto has expired; and

dispatching a timed-out queue from one of the two or more dispatch memory elements based on the weights associated with each group.

19. A method for providing timeout delays for data queues in a processing system, the method comprising the steps of:

maintaining, by a processor in the processing system, a timeout structure comprising two or more groups, each group comprising two or more bins, each bin having a range of timeout delay values associated therewith, each group having a weight associated therewith, the weight of each group being based on a rate and a quantity of queues assignable to each group;

selecting, by a processor in the processing system, a timeout delay value associated with the timeout structure to be assigned to a data queue in the processing system;

maintaining two or more memory elements from which queues are dispatched when the timeout delay value assigned thereto has expired; and

dispatching a timed-out queue from one of the two or more dispatch memory elements based on the weights associated with each group modified by the number of entries in the two or more dispatch memory elements.

20. Apparatus for providing timeout delays for data queues in a processing system, comprising:

a data structure, stored in a memory element, comprising two or more groups, each group comprising two or more bins, each group having associated therewith a range of timeout delay values, each bin of a given group having associated therewith a portion of the range of timeout delay values associated with the given group, the weight of each group being based on a rate and a quantity of queues assignable to each group; and

two or more other memory elements to which queues are dispatched when the timeout delay value assigned thereto, from the data structure stored in the memory element, has expired.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: LSI CORPORATION
To: INTEL CORPORATION
Reel/Frame 035090/0477 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 32856/0031 Recorded Nov 18, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034286/0872 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: AGERE SYSTEMS LLC
To: LSI CORPORATION
Reel/Frame 034245/0655 →
CERTIFICATE OF CONVERSION Recorded Oct 19, 2014
From: AGERE SYSTEMS INC.
To: AGERE SYSTEMS LLC
Reel/Frame 034014/0846 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2006
From: KOOB, CHRISTOPHER; POURSEPANJ, ALI A.; SONNIER, DAVID P.
To: AGERE SYSTEMS INC.
Reel/Frame 018261/0068 →