IP Library Granted Patent US 8,837,502
Granted Patent B2
US 8,837,502 · App. 13/467,399 · Granted Sep 16, 2014

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 8,837,502
App. No.
13/467,399
Granted
Sep 16, 2014
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 (33)

1. An egress port queue associated with an egress port of a switch, the egress port queue comprising:

a first queue memory being configured to receive and enqueue a pointer corresponding to a received data packet, the first queue memory having a first access time;

a second queue memory in communication with the first queue memory, the second queue memory having a second access time, the first access time being shorter than the second access time such that the pointer corresponding to the received data packet may additionally be enqueued in one or more other egress port queues associated with one or more other egress ports of the switch during a single port cycle; and

control logic configured to transfer a plurality of pointers from the first queue memory to the second queue memory in a single transfer cycle, the plurality of pointer including the enqueued pointer corresponding to the received data packet and one or more previously enqueued pointers corresponding to one or more previously received data packets.

2. The queue of claim 1 , wherein the control logic is further configured to dequeue each pointer of the plurality of pointers from the second queue memory.

3. The queue of claim 2 , wherein each pointer of the plurality of pointers is dequeued by reading the pointer from the second queue memory.

4. The queue of claim 1 , wherein the first queue memory comprises a plurality of cache rows.

5. The queue of claim 4 , wherein:

the plurality of pointers comprises all of the pointers in one of the cache rows; and

the control logic transfers the plurality of pointers from the first queue memory to the second queue memory in a single write operation.

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

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

8. The queue of claim 4 , wherein entries in the cache rows are ordered by position.

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

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

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

12. The queue of claim 1 , wherein the plurality of pointers are transferred from the first queue memory to the second queue memory by writing the plurality of pointers as a linked list in the second queue memory.

13. The queue of claim 1 , wherein the second queue memory is in communication with the first queue memory via intermediate logic.

14. The queue of claim 13 , wherein the intermediate logic is operative to:

read the plurality of pointers from the first queue memory; and

write the plurality of pointers to the second queue memory in a single transfer cycle.

15. The queue of claim 13 , wherein the intermediate logic reads the plurality of pointers from the first queue memory when a number of pointers stored in the first queue memory is greater than a predetermined threshold.

16. The queue of claim 13 , wherein the intermediate logic reads the plurality of pointers from the first queue memory when at least one row of the first queue memory is full.

17. The queue of claim 1 , wherein the first queue memory has at least two rows.

18. The queue of claim 17 , wherein the plurality of pointers correspond to a full row of the first queue memory.

19. The queue of claim 17 , wherein the pointers stored in each row of the first queue memory are ordered by position in the row.

20. The queue of claim 1 , wherein the second queue memory comprises DRAM.

21. The queue of claim 20 , wherein the first queue memory comprises SRAM.

22. The queue of claim 20 , wherein the first queue memory comprises DRAM.

23. The queue of claim 1 , wherein the plurality of pointers are written to the second queue memory as a packet vector containing the plurality of pointers.

24. The queue of claim 23 , wherein the packet vector forms a linked list in combination with other packet vectors stored in the second queue memory.

25. The queue of claim 24 , wherein the packet vector further contains data indicative of an address of a next packet vector in the second queue memory.

26. The queue of claim 24 , wherein the packet vector further contains data indicative of a number of pointers in the packet vector.

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 →
CHANGE OF NAME Recorded Mar 13, 2014
From: MOSAID TECHNOLOGIES INCORPORATED
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 032439/0638 →
CHANGE OF REGISTERED OFFICE ADDRESS Recorded May 10, 2012
From: MOSAID TECHNOLOGIES INCORPORATED
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 028191/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2012
From: WYATT, RICHARD M.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 028190/0517 →