IP Library Granted Patent US 7,573,889
Granted Patent B1
US 7,573,889 · App. 10/850,563 · Granted Aug 11, 2009

Systems and methods for efficient buffering and metering of high-speed flows

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,573,889
App. No.
10/850,563
Granted
Aug 11, 2009
Kind
B1
Abstract

Systems and methods are disclosed in which one or more cells are buffered in a communication system. In one embodiment, the method includes receiving a cell; classifying the cell as one of a set of flows; transmitting the cell to one of a set of queues of static memory, such that the queue corresponds to one of a set of banks of dynamic memory; and writing the cell to the corresponding one of the set of banks.

Claims (90)

1. A method of buffering one or more cells comprising:

receiving a cell;

classifying the cell as one of a set of flows, wherein each flow has a corresponding flow number;

transmitting the cell to a first queue of a set of queues of static memory, such that the queue corresponds to one of a set of banks of dynamic memory;

determining, based on a transmission time, one of the set of banks for storage of the cell;

writing the cell to the corresponding one of the set of banks; and

storing in the queue the transmitted cell and a transmit time representing when the cell will be transmitted from dynamic memory,

wherein the transmit time is calculated by:

determining the flow number corresponding to the cell,

determining a current flow and corresponding flow number transmitted from the dynamic memory, and

determining the number of time periods between the current flow and the cell.

2. The method of claim 1 , further comprising:

storing in the queue the transmitted cell and a memory address representing a location in one of the set of banks.

3. The method of claim 1 , wherein receiving the cell further comprises:

receiving the cell from a first network.

4. The method of claim 1 , wherein:

the transmission time is based on the classified flow of the cell.

5. The method of claim 1 , further comprising:

receiving a second cell.

6. The method of claim 5 , further comprising:

classifying the second cell as a second flow of the set of flows.

7. The method of claim 1 , further comprising:

transmitting the second cell to a second queue of the set of queues of static memory, such that the second queue corresponds to a second bank.

8. The method of claim 7 , further comprising:

storing the second cell in the second queue.

9. The method of claim 7 , further comprising:

writing the second cell to the second bank.

10. The method of claim 1 , wherein writing the cell to the corresponding bank further comprises:

reading, based on a schedule, the cell from one of the set of banks.

11. The method of claim 1 , wherein writing the cell to corresponding bank further comprises:

writing based on a schedule, the schedule representing when each of the banks are accessed for writing.

12. The method of claim 1 , further comprising:

reading, based on a schedule, the cell written to the corresponding bank of dynamic memory.

13. The method of claim 12 , further comprising:

transmitting the cell, read from the corresponding bank, to a second network.

14. The method of claim 1 , further comprising:

using, as static memory, a static random access memory (SRAM).

15. The method of claim 1 , further comprising:

using, as dynamic memory, dynamic random access memory (DRAM).

16. A method of buffering one or more cells comprising:

receiving a cell;

classifying the cell as one of a set of flows, wherein each flow has a corresponding flow number;

transmitting the cell to a first queue of a set of queues of static memory, such that the queue corresponds to one of a set of banks of dynamic memory;

determining, based on a schedule, one of the set of banks for storage of the cell;

writing the cell to the corresponding one of the set of banks; and

storing in the queue the transmitted cell and a transmit time representing when the cell will be transmitted from dynamic memory,

wherein the transmit time is calculated by:

determining the flow number corresponding to the cell,

determining a current flow and corresponding flow number transmitted from the dynamic memory, and

determining the number of time periods between the current flow and the cell.

17. A system for buffering one or more cells comprising:

means for receiving a cell;

means for classifying the cell as one of a set of flows, wherein each flow has a corresponding flow number;

means for transmitting the cell to one of a set of queues of static memory, such that the queue corresponds to one of a set of banks of dynamic memory; means for determining, based on a transmission time, one of the set of banks for storage of the cell;

means for writing the cell to the corresponding one of the set of banks; and

means for storing in the queue the transmitted cell and a transmit time representing when the cell will be transmitted from dynamic memory,

wherein the transmit time is calculated by:

determining the flow number corresponding to the cell,

determining a current flow and corresponding flow number transmitted from the dynamic memory, and

determining the number of time periods between the current flow and the cell.

18. A system for buffering one or more cells, the system comprising:

a processor; and

a memory,

wherein the processor and the memory are configured to perform a method comprising:

receiving a cell;

classifying the cell as one of a set of flows, wherein each flow has a corresponding flow number;

transmitting the cell to one of a set of queues of static memory, such that the queue corresponds to one of a set of banks of dynamic memory;

storing in the queue the transmitted cell and a transmit time representing when the cell will be transmitted from dynamic memory; and

writing the cell to the corresponding one of the set of banks, wherein the transmit time is calculated by:

determining the flow number corresponding to the cell,

determining a current flow and corresponding flow number transmitted from the dynamic memory, and

determining the number of time periods between the current flow and the cell.

19. The system of claim 18 , further comprising:

storing in the queue a memory address representing a location in one of the set of banks.

20. The system of claim 18 , wherein receiving the cell further comprises:

receiving the cell from a first network.

21. A computer-readable medium containing instructions to configure a data processor to perform a method for buffering, the method comprising:

receiving a cell;

classifying the cell as one of a set of flows, wherein each flow has a corresponding flow number;

transmitting the cell to one of a set of queues of static memory, such that the queue corresponds to one of a set of banks of dynamic memory;

storing in the queue the transmitted cell and a transmit time representing when the cell will be transmitted from dynamic memory; and

writing the cell to the corresponding one of the set of banks,

wherein the transmit time is calculated by:

determining the flow number corresponding to the cell,

determining a current flow and corresponding flow number transmitted from the dynamic memory, and

determining the number of time periods between the current flow and the cell.

22. The computer-readable medium of claim 21 , further comprising:

storing in the queue a memory address representing a location in one of the set of banks.

23. The computer-readable medium of claim 21 , wherein receiving the cell further comprises:

receiving the cell from a first network.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2014
From: VERIZON CORPORATE SERVICES GROUP INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 033421/0403 →
CHANGE OF NAME Recorded Jun 11, 2010
From: BBN TECHNOLOGIES CORP.
To: RAYTHEON BBN TECHNOLOGIES CORP.
Reel/Frame 024523/0625 →
RELEASE OF SECURITY INTEREST Recorded Oct 27, 2009
From: BANK OF AMERICA, N.A. (SUCCESSOR BY MERGER TO FLEET NATIONAL BANK)
To: BBN TECHNOLOGIES CORP. (AS SUCCESSOR BY MERGER TO BBNT SOLUTIONS LLC)
Reel/Frame 023427/0436 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT SUPPLEMENT Recorded Dec 4, 2008
From: BBN TECHNOLOGIES CORP.
To: BANK OF AMERICA, N.A.
Reel/Frame 021926/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2007
From: MILLIKEN, WALTER C.
To: VERIZON CORPORATE SERVICES GROUP, INC.; BBNT SOLUTIONS LLC
Reel/Frame 019071/0587 →