Claims
- 1. A method for configuring a system to assign pointers to packets, comprising:
providing a plurality of pointer buffer fields configured to identify memory interfaces and memory banks associated with a pointer memory; associating respective prime number values with said plurality of pointer buffer fields, wherein said respective prime number values are unique; and configuring a plurality of input interfaces to:
obtain a pointer of said pointer memory in accordance with a pointer buffer field of said plurality of pointer buffer fields; store a received packet in accordance with said pointer; and increment said pointer buffer field by the respective prime number value associated with said pointer buffer field.
- 2. The method of claim 1, further comprising:
maintaining a first portion of said pointer buffer field that identifies a memory interface of said pointer memory; and maintaining a second portion of said pointer buffer field that identifies a memory bank of said pointer memory.
- 3. The method of claim 1, further comprising:
configuring an output interface to forward said packet and recycle said pointer.
- 4. The method of claim 1, further comprising:
configuring a pointer memory to contain pointers; and sorting available pointers by memory bank and memory interface.
- 5. The method of claim 1, further comprising:
establishing a product of a number of said memory interfaces times a number of said memory banks; and establishing said respective prime number values such that the remainder of a first respective prime number value divided by said product does not equal any second respective prime number value.
- 6. A method for forwarding packets, comprising:
assigning a first pointer from an available pool of pointers to a first cell in accordance with a first memory parameter; storing the first cell in memory according to said first pointer; incrementing said first memory parameter by a first prime number; and returning said first pointer to said available pool of pointers.
- 7. The method of claim 6, further comprising:
receiving a second cell on a second interface; assigning a second pointer from said available pool of pointers to said second cell in accordance with a second memory parameter; storing the second cell in memory according to said second pointer; incrementing said second memory parameter by a second prime number; forwarding said second cell on said output interface; and returning said second pointer to said available pool of pointers.
- 8. The method of claim 7, further comprising:
ensuring that a remainder of said first prime number divided by a number of memory parameters is not equal to said second prime number.
- 9. The method of claim 6, wherein said first memory parameter comprises a memory interface portion that has a value between 0 and a represented number of memory interfaces, further comprising:
rolling over said first memory parameter when said first memory parameter is incremented such that a first memory interface portion has a value greater than a represented number of memory interfaces.
- 10. The method of claim 6, further comprising:
receiving said first cell on a first input interface; and forwarding said first cell on an output interface.
- 11. A packet based-traffic forwarding system that allocates pointers to memory blocks, comprising:
packet memory; pointer memory configured to contain a list of pointers that are associated with locations of said packet memory, wherein said list of pointers includes a list of available pointers; a sorting buffer configured to sort available pointers of said list of available pointers in accordance with memory parameters; a pointer buffer configured to contain the sorted pointers; one or more input interfaces configured to receive cells for storage in said packet memory, said one or more input interfaces including:
a prime number memory parameter increment engine configured to increment a memory parameter counter by a prime number; a pointer acquisition engine configured to receive pointers from said pointer buffer in accordance with said memory parameter counter, and to associate said pointers with said cells; and an output interface configured to forward said cells from said packet memory and return said associated pointers to said list of available pointers.
- 12. The system of claim 11, wherein said memory parameter counter includes a memory bank parameter and a memory interface parameter.
- 13. The system of claim 12, wherein said memory bank parameter is in a least significant bit portion of said memory parameter counter and said memory interface parameter is in a most significant bit portion of said memory parameter counter, said memory parameter increment engine further configured to roll over if incrementing increases the memory interface parameter to above a predetermined number.
- 14. The system of claim 11, wherein said memory parameter counter is four bits long.
- 15. The system of claim 11, further comprising:
a cell forwarding engine configured to use said associated pointers to execute procedures related to said cells.
- 16. The system of claim 11, wherein:
said pointer buffer includes a sub-buffer, associated with a memory parameter, configured to contain pointers that are associated with said memory parameter; and said pointer acquisition engine is further configured to select a pointer from said sub-buffer if said memory parameter corresponds to said memory parameter counter.
- 17. The system of claim 16, wherein:
said sorting buffer is further configured to sort said available pointers so that a pointer that is associated with a location of said packet memory that does not correspond to said memory parameter becomes associated with said memory parameter if said sub-buffer is at risk of becoming empty.
- 18. The system of claim 16, wherein:
said pointer buffer includes one sub-buffer per memory parameter.
- 19. The system of claim 11, wherein said one or more input interfaces includes a first input interface and a second input interface, wherein the prime number memory parameter increment engine of said first input interface is incremented by a first prime number, wherein the prime number memory parameter increment engine of said second input interface is incremented by a second prime number, and wherein said second prime number is different from said first prime number.
- 20. The system of claim 19, wherein a remainder of said first prime number divided by a number of said memory parameters is not equal to said second prime number for any second input interface.
CROSS REFERENCE TO RELATED APPLICATION
[0001] This application is entitled to the benefit of provisional Patent Application Serial No. 60/385,985, filed 4 Jun. 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60385985 |
Jun 2002 |
US |