IP Library Granted Patent US 7,320,037
Granted Patent B1
US 7,320,037 · App. 10/144,091 · Granted Jan 15, 2008

Method and apparatus for packet segmentation, enqueuing and queue servicing for multiple network processor architecture

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,320,037
App. No.
10/144,091
Granted
Jan 15, 2008
Kind
B1
Abstract

A method is described that forms different pieces of a packet and sends each one of the pieces toward a different memory unit amongst a plurality of memory units. Each one of the memory units is managed by a different network processor. The method also receives each of the different pieces, each of the pieces having been read from its respective memory unit of the plurality of memory units.

Claims (24)

1. A method, comprising:

forming different pieces of a packet, the different pieces having variable lengths, and sending each one of said pieces toward a different memory unit amongst a plurality of memory units by directing a larger piece of said packet along a data bus of X bits that splits into N data buses of Y bits, where N is the number of said memory units and X is greater than Y, each one of said N data buses of width Y being directed toward a different one of said memory units, said larger piece of said packet being larger than each of said different pieces, each one of said memory units being managed by a different network processor; and

receiving each of said different pieces, each said pieces having been read from respective memory unit of said plurality of memory units.

2. The method of claim 1 further comprising storing said packet into a feeder buffer prior to said forming, said feeder buffer tailored to feed at least a portion of said packet to said memory units.

3. The method of claim 2 further comprising transferring said packet from an input buffer to said feeder buffer prior to said storing.

4. The method of claim 3 wherein said transferring further comprises passing said packet through a multiplexer, said multiplexer between said input buffer and said feeder buffer.

5. The method of claim 1 further comprising deciding, prior to said forming, that said packet should not bypass said memory units.

6. The method of claim 5 wherein said deciding further comprises recognizing that a buffer to which said packet would have been bypassed to does not have sufficient space to accept said packet.

7. The method of claim 5 wherein said deciding further comprises recognizing that another packet ahead of said packet within a queue shared by each of said packets already has been stored in said memory units.

8. The method of claim 1 further comprising deciding that a second packet should bypass said memory units, said second packet associated with a different queue than said packet.

9. The method of claim 8 further comprising transferring said second packet from an input buffer to an output buffer so as to bypass said memory units.

10. The method of claim 9 further comprising passing said second packet through a multiplexer, said multiplexer between said input buffer and said output buffer.

11. A method, comprising:

forming different pieces of a packet into larger pieces, the different pieces having variable lengths, and sending each one of said pieces toward a different memory unit amongst a plurality of memory units by directing said different pieces along N data buses of Y bits that merge into a wider data bus of X bits, where N is the number of said memory units and X is greater than Y, each one of said N data buses of width Y being directed from a different one of said memory units, said larger pieces of said packet being larger than each of said different pieces, each one of said memory units being managed by a different network processor; and

receiving each of said different pieces, each said pieces having been read from respective memory unit of said plurality of memory units.

12. The method of claim 11 further comprising storing said packet into a feeder buffer prior to forming, said feeder buffer tailored to feed at least a portion of said packet to said memory units.

13. The method of claim 12 further comprising transferring said packet from an input buffer to said feeder buffer prior to said storing.

14. The method of claim 13 wherein said transferring further comprises passing said packet through a multiplexer, said multiplexer being located between said input buffer and said feeder buffer.

15. The method of claim 11 further comprising deciding, prior to said forming, that said packet should not bypass said memory units.

16. The method of claim 15 wherein deciding further comprises recognizing that a buffer to which said packet would have been bypassed to does not have sufficient space to accept said packet.

17. The method of claim 15 wherein deciding further comprises recognizing that another packet ahead of said packet within a queue shared by each of said packets already has been stored in said memory units.

18. The method of claim 11 further comprising deciding that a second packet should bypass said memory units, said second packet associated with a different queue than said packet.

19. The method of claim 18 further comprising transferring said second packet from an input buffer to an output buffer so as to bypass said memory units.

20. The method of claim 19 further comprising passing said second packet through a multiplexer, said multiplexer between said input buffer and said output buffer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2006
From: TREPTON RESEARCH GROUP
To: ALTERA CORPORATION
Reel/Frame 017663/0326 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2004
From: PROPULSION NETWORKS, INC.
To: TREPTON RESEARCH GROUP, INC.
Reel/Frame 014632/0242 →