IP Library Granted Patent US 7,804,834
Granted Patent B2
US 7,804,834 · App. 11/804,381 · Granted Sep 28, 2010

Port packet queuing

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,804,834
App. No.
11/804,381
Granted
Sep 28, 2010
Kind
B2
Abstract

A port queue includes a first memory portion having a first memory access time and a second memory portion having a second memory access time. The first memory portion includes a cache row. The cache row includes a plurality of queue entries. A packet pointer is enqueued in the port queue by writing the packet pointer in a queue entry in the cache row in the first memory. The cache row is transferred to a packet vector in the second memory. A packet pointer is dequeued from the port queue by reading a queue entry from the packet vector stored in the second memory.

Claims (50)

1. A queue comprising:

a first memory having a first memory access time;

a second memory having a second memory access time that is significantly slower than the first access time; and

control logic that i) enqueues in the queue a number of pointers to data to be transmitted by writing the pointers in the first memory, ii) establishes a linked list by transferring the pointers to the second memory, and iii) dequeues each pointer from the second memory.

2. The queue of claim 1 wherein the transferring of the pointers is carried out in a single transfer cycle.

3. The queue of claim 1 wherein each pointer is dequeued by reading the pointer from the second memory.

4. The queue of claim 1 wherein the first memory is a static random access memory and the second memory is a dynamic random access memory.

5. A queue comprising:

a first memory that includes a plurality of cache rows, the first memory having a first memory access time;

a second memory having a second memory access time that is significantly slower than the first access time; and

control logic that i) enqueues in the queue a pointer to data to be transmitted by writing the pointer in the first memory, ii) transfers the pointer to the second memory, and iii) dequeues the pointer from the second memory.

6. The queue of claim 5 wherein the first memory transfers one of the cache rows in a single write operation.

7. The queue of claim 5 wherein the control logic fills one of the cache rows in the first memory before transferring that cache row to the second memory.

8. The queue of claim 5 wherein the control logic partially fills one of the cache rows in the first memory before transferring that cache row to the second memory in a single write operation.

9. The queue of claim 5 wherein entries in the cache rows are ordered by position.

10. The queue of claim 5 wherein a packet vector stored in the second memory includes a cache row entry and a count of the number of pointers stored in the cache row entry.

11. The queue of claim 10 wherein the packet vector stored in the second memory includes a link to a next packet vector in the queue.

12. The queue of claim 5 wherein a packet vector stored in the second memory includes a link to a next packet vector in the queue.

13. The queue of claim 5 wherein the first memory is a static random access memory and the second memory is a dynamic random access memory.

14. A queue comprising:

a first storage means having a first memory access time;

a second storage means having a second access time that is significantly slower than the first access time;

means for enqueuing in the queue a number of pointers to data to be transmitted by writing the pointers in the first storage means;

means for transferring the pointers to the second storage means to thereby establish a linked list; and

means for dequeuing each pointer from the second storage means.

15. The queue of claim 14 wherein the pointers are transferred in a single transfer cycle.

16. The queue of claim 14 wherein the means for dequeuing dequeues each said pointer by reading the pointer from the second memory.

17. A queue comprising:

a first storage means that includes a plurality of cache rows, the first storage means having a first memory access time;

a second storage means having a second memory access time that is significantly slower than the first access time;

means for enqueuing in the queue a pointer to data to be transmitted by writing the pointer in the first storage means;

means for transferring the pointer to the second storage means; and

means for dequeuing the pointer from the second storage means.

18. The queue of claim 17 wherein the means for enqueuing fills one of the cache rows in the first storage means before that cache row is transferred to the second storage means.

19. The queue of claim 18 wherein the cache row is transferred to the second storage means in a single write operation.

20. The queue of claim 17 wherein the means for enqueuing partially fills one of the cache rows in the first storage means before that cache row is transferred to the second storage means.

21. The queue of claim 17 wherein entries in the cache rows are ordered by position.

22. The queue of claim 17 wherein a packet vector stored in the second storage means includes a cache row entry and a count of the number of pointers stored in the cache row entry.

23. A method of processing data packets in a switch, the method comprising:

receiving data packets on an ingress port of the switch and writing the data packets to buffer memory of the switch;

writing in a first memory associated with an egress port of the switch a plurality of pointers pointing to the data packets in the buffer memory, the first memory having a first memory access time;

transferring the plurality of pointers to a second memory associated with the egress port, the second memory having a second memory access time that is significantly slower than the first memory access time; and

removing each pointer from the second memory and forwarding the corresponding data packet to the egress port.

24. The method of claim 23 wherein transferring the plurality of pointers to the second memory includes transferring the plurality of pointers to the second memory in a single transfer cycle.

25. The method of claim 23 wherein transferring the plurality of pointers to the second memory includes establishing a linked list of pointers.

26. The method of claim 23 wherein writing in a first memory a plurality of pointers includes writing each pointer in a single write operation to the first memory.

27. The method of claim 23 wherein transferring the plurality of pointers to the second memory includes transferring a full cache row to the second memory.

28. The method of claim 27 wherein transferring the full cache row includes transferring the full cache row in a single write cycle.

29. The method of claim 23 wherein transferring the plurality of pointers to the second memory includes transferring a partially filled cache row to the second memory.

30. The method of claim 29 wherein transferring the partially filled cache row includes transferring the partially filled cache row a in single write cycle.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2020
From: CPPIB CREDIT INVESTMENTS INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 054278/0333 →
RELEASE OF U.S. PATENT AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Oct 12, 2018
From: ROYAL BANK OF CANADA, AS LENDER
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 047645/0424 →
AMENDED AND RESTATED U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Aug 22, 2018
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS, INC.
Reel/Frame 046900/0136 →
U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Sep 9, 2014
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS INC., AS LENDER; ROYAL BANK OF CANADA, AS LENDER
Reel/Frame 033706/0367 →
CHANGE OF ADDRESS Recorded Sep 3, 2014
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 033678/0096 →
RELEASE OF SECURITY INTEREST Recorded Aug 7, 2014
From: ROYAL BANK OF CANADA
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.; CONVERSANT IP N.B. 868 INC.; CONVERSANT IP N.B. 276 INC.
Reel/Frame 033484/0344 →
CHANGE OF NAME Recorded Mar 13, 2014
From: MOSAID TECHNOLOGIES INCORPORATED
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 032439/0638 →
U.S. INTELLECTUAL PROPERTY SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) - SHORT FORM Recorded Jan 10, 2012
From: 658276 N.B. LTD.; 658868 N.B. INC.; MOSAID TECHNOLOGIES INCORPORATED
To: ROYAL BANK OF CANADA
Reel/Frame 027512/0196 →