IP Library Granted Patent US 7,324,520
Granted Patent B2
US 7,324,520 · App. 10/188,419 · Granted Jan 29, 2008

Method and apparatus to process switch traffic

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,324,520
App. No.
10/188,419
Granted
Jan 29, 2008
Kind
B2
Abstract

A system and method for reassembling c-frames into coherent packets are disclosed. C-frames contain segments of a data set. A micro-engine operating multiple threads copies the data set segments into assigned queues, following a thread hierarchy to keep the segments in order. The queues are stored in SRAM. The micro-engine maintains a subset of the total number of queues in local memory. If a segment belongs to a queue not in local memory, the least recently used queue is copied to SRAM, the required queue is read from SRAM, and the queue is updated with the data set segment.

Claims (40)

1. A processor, comprising:

a micro-engine to execute a plurality of threads, each to add a segment of a data set received by the processor to a first queue of a first plurality of queues stored in a local memory of the micro-engine, wherein the local memory of the micro-engine is not available to other micro-engines in the processor; and

a static random access memory (SRAM) to store a second plurality of queues, wherein the first plurality of queues is a subset of the second plurality of queues, wherein a queue number representing one of the second plurality of queues is associated with the data set, wherein the first queue is selected from the first plurality of queues based on the queue number associated with the data set, wherein, if the queue number does not match one of the first plurality of queues, the processor writes a least recently used queue to SRAM, reads a second queue of the second plurality of queues associated with the queue number from SRAM, and adds the segment of the data set to the second queue.

2. The processor of claim 1 , wherein a port number associated with the processor is appended to the data set.

3. The processor of claim 1 , wherein the processor receives the segment of the data set from a switching fabric.

4. The processor of claim 1 , wherein the queue is assigned to the segment of the data set by a second processor which converted the data set into segments.

5. The processor of claim 1 , wherein the segment of the data set is formatted in a common switch interface format.

6. A system, comprising:

a first line card, including:

a first processor with a first micro-engine to separate a first data set into segments;

a second line card, including:

a second processor with a second micro-engine to include a plurality of threads to add the segments of the data set to a first queue of a first plurality of queues stored in a local memory of the second micro-engine, wherein the local memory of the micro-engine is not available to other micro-engines in the processor, wherein the second processor includes a static random access memory (SRAM) to store a second plurality of queues, wherein the first plurality of queues is a subset of the second plurality of queues, wherein a queue number representing one of the second plurality of queues is associated with the data set, wherein a thread of the plurality of threads chooses the first queue from the first plurality of queues based on the queue number associated with the data set, wherein, if the queue number does not match one of the first plurality of queues, the thread writes a least recently used queue to SRAM, reads from SRAM a second queue of the second plurality of queues associated with the queue number, and adds the segment of the data set to the second queue; and

a switching fabric to transmit the segments of the data set from the first processor to the second processor.

7. The system of claim 6 , wherein a port number associated by the first processor with the second line card is associated with the data set.

8. The system of claim 6 , wherein the queue is assigned to the segments of the data set by the first processor.

9. The system of claim 6 , wherein the segments of the data set is formatted in a common switch interface format for transmission across the switching fabric.

10. A method, comprising:

separating a first data set into segments;

receiving in a processor the segments of the data set;

adding the segments of a data set to a first queue of a first plurality of queues stored in a local memory of a micro-engine of the processor, wherein the local memory of the micro-engine is not available to other micro-engines in the processor, wherein the processor includes a static random access memory (SRAM) to store a second plurality of queues, wherein the first plurality of queues is a subset of the second plurality of queues;

associating a queue number representing one of the second plurality of queues with the data set;

choosing the first queue from the first plurality of queues based on the queue number associated with the data set;

writing a least recently used queue to SRAM;

reading a second queue of the second plurality of queues associated with the queue number from SRAM; and

adding the segments of the data set to the second queue if the queue number does not match one of the first plurality of queues.

11. The method of claim 10 , further including associating a port number representing the processor with the data set.

12. The method of claim 10 , wherein the segments of the data set are transmitted from the first processor to the second processor via a switching fabric.

13. The method of claim 10 , further including formatting the segments of the data set in a common switch interface format.

14. A set of instructions residing in a storage medium, said set of instructions capable of being executed by a processor to implement a method for reassembling a data set, the method comprising:

separating a first data set into segments;

receiving in a processor the segments of the data set;

adding the segments of a data set to a first queue of a first plurality of queues stored in a local memory of a micro-engine of the processor, wherein the local memory of the micro-engine is not available to other micro-engines in the processor, wherein the processor includes a static random access memory (SRAM) to store a second plurality of queues, wherein the first plurality of queues is a subset of the second plurality of queues;

associating a queue number representing one of the second plurality of queues with the data set;

choosing the first queue from the first plurality of queues based on the queue number associated with the data set;

writing a least recently used queue to SRAM;

reading a second queue of the second plurality of queues associated with the queue number from SRAM; and

adding the segments of the data set to the second queue if the queue number does not match one of the first plurality of queues.

15. The set of instructions of claim 14 , further including associating a port number representing the processor with the data set.

16. The set of instructions of claim 14 , wherein the segments of the data set are transmitted from the first processor to the second processor via a switching fabric.

17. The set of instructions of claim 14 , further including formatting the segments of the data set in a common switch interface format.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2002
From: LAKSHMANAMURTHY, SRIDHAR; HUSTON, LAWRENCE B.; BERNSTEIN, DEBRA; WILKINSON, HUGH M., III; ROSENBLUTH, MARK B.
To: INTEL CORPORATION
Reel/Frame 013488/0981 →