USRE42092EExpiredUtility

Integrated circuit that processes communication packets with a buffer management engine having a pointer cache

78
Assignee: TOMPKINS JOSEPH BPriority: Aug 17, 1999Filed: May 16, 2008Granted: Feb 1, 2011
Est. expiryAug 17, 2019(expired)· nominal 20-yr term from priority
H04L 49/90H04L 49/9078H04L 47/6215H04L 47/2425H04L 2012/5651H04L 49/3081H04L 2012/5684H04L 47/50H04Q 11/0478H04L 49/9094H04L 12/5602H04L 49/9073H04L 49/901H04L 2012/5679H04L 49/9047
78
PatentIndex Score
6
Cited by
28
References
66
Claims

Abstract

An integrated circuit processes communication packets and comprises a pointer cache and control logic. The pointer cache store pointers that correspond to external buffers that are external to the integrated circuit and configured to store the communication packets. The control logic allocates the external buffers as the corresponding pointers are read from the pointer cache and de-allocates the external buffers as the corresponding pointers are written back to the pointer cache.

Claims

exact text as granted — not AI-modified
1. An integrated circuit that processes communication packets, the integrated circuit comprising:
 a core processor configured to create a plurality of external buffers that are external to the integrated circuit and configured to store the communication packets where each external buffers is associated with a pointer that corresponds to the external buffer;  
 a pointer cache configured to store the pointers that correspond to the external buffers;  
 control logic configured to allocate the external buffers as the corresponding pointers are read from the pointer cache and de-allocate the external buffers as the corresponding pointers are written back to the pointer cache wherein the control logic is configured to transfer an exhaustion signal if a number of the pointers to the de-allocated buffers reaches a minimum threshold; and  
 the core processor configured to create additional external buffers and their corresponding pointers in response to the exhaustion signal.  
 
     
     
       2. The integrated circuit of  claim 1  wherein the control logic is configured to track a number of the pointers to the de-allocated external buffers. 
     
     
       3. The integrated circuit of  claim 1  wherein the control logic is configured to transfer additional pointers to the pointer cache if a number of the pointers to the de-allocated buffers reaches a minimum threshold. 
     
     
       4. The integrated circuit of  claim 1  wherein the control logic is configured to transfer an excess portion of the pointers from the pointer cache if the number of the pointers to the de-allocated buffers reaches a maximum threshold. 
     
     
       5. The integrated circuit of  claim 1  wherein the external buffers are distributed among at least two pools. 
     
     
       6. The integrated circuit of  claim 1  wherein the external buffers and the pointers to the external buffers are distributed among a plurality of classes. 
     
     
       7. The integrated circuit of  claim 6  wherein the control logic is configured to track a number of the pointers to the de-allocated external buffers for at least one of the classes. 
     
     
       8. The integrated circuit of  claim 6  wherein the control logic is configured to track a number of the pointers to the allocated external buffers for at least one of the classes. 
     
     
       9. The integrated circuit of  claim 6  wherein the control logic is configured to borrow at least some of the pointers from a first one of the classes for use by a second one of the classes. 
     
     
       10. The integrated circuit of  claim 6  wherein the control logic is configured to redistribute at least some of the pointers from a first one of the classes to a second one of the classes. 
     
     
       11. The integrated circuit of  claim 6  wherein the control logic is configured to transfer an exhaustion signal if a number of the pointers to the de-allocated buffers in one of the classes reaches a minimum threshold. 
     
     
       12. The integrated circuit of  claim 6  wherein the control logic is configured to track a number of the pointer distributed to one of the classes. 
     
     
       13. The integrated circuit of  claim 6  wherein at least one of the classes is associated only with constant bit rate packets. 
     
     
       14. The integrated circuit of  claim 6  wherein at least one of the classes is associated only with available bit rate packets. 
     
     
       15. The integrated circuit of  claim 6  wherein at least one of the classes is associated only with variable bit rate packets. 
     
     
       16. The integrated circuit of  claim 6  wherein at least one of the classes is associated only with unspecified bit rate packets. 
     
     
       17. A method of operating an integrated circuit that processes communication packets, the method comprising:
 creating a plurality of external buffers that are external to the integrated circuit and that are configured to store the communication packets, ; 
 creating a plurality of pointers where each pointer corresponds to one of the plurality of external buffers;  
 storing a subset of the plurality of pointers in a pointer cache in the integrated circuit;  
 allocating the external buffers as the corresponding pointers are read from the pointer cache;  
 de-allocating the external buffers as the corresponding pointers are written back to the pointer cache;  
 transferring an exhaustion signal if a number of the pointers to the de-allocated buffers reaches a minimum threshold; and  
 in response to the exhaustion signal, creating additional external buffers and their corresponding pointers where the additional external buffers are external to the integrated circuit and are configured to store the communication packets.  
 
     
     
       18. The method of  claim 17  further comprising tracking a  the number of the pointers to the de-allocated external buffers. 
     
     
       19. The method of  claim 17  further comprising transferring additional pointers to the pointer cache if a number of the pointers to the de-allocated buffers reaches a minimum threshold. 
     
     
       20. The method of  claim 17  further comprising transferring an excess portion of the pointers from the pointer cache if the number of the pointers to the de-allocated buffers reaches a maximum threshold. 
     
     
       21. The method of  claim 17  wherein the external buffers are distributed among at least two pools. 
     
     
       22. The method of  claim 17  wherein the external buffers and the pointers to the external buffers are distributed among a plurality of classes. 
     
     
       23. The method of  claim 22  further comprising tracking a number of the pointers to the de-allocated external buffers for at least one of the classes. 
     
     
       24. The method of  claim 22  further comprising tracking a number of the pointers to the allocated external buffers for at least one of the classes. 
     
     
       25. The method of  claim 22  further comprising borrowing at least some of the pointers from a first one of the classes for use by a second one of the classes. 
     
     
       26. The method of  claim 22  further comprising re-distributing at least some of the pointers from a first one of the classes to a second one of the classes. 
     
     
       27. The method of  claim 22  further comprising tracking a number of pointers distributed to one of the classes. 
     
     
       28. The method of  claim 22  wherein at least one of the classes is associated only with constant bit rate packets. 
     
     
       29. The method of  claim 22  wherein at least one of the classes is associated only with available bit rate packets. 
     
     
       30. The method of  claim 22  wherein at least one of the classes is associated only with variable bit rate packets. 
     
     
       31. The method of  claim 22  wherein at least one of the classes is associated only with unspecified bit rate packets. 
     
     
       32. The integrated circuit of  claim 6  wherein at least one of the classes is associated with a set of one or more types of network traffic. 
     
     
       33. An integrated circuit that processes communication packets, the integrated circuit comprising:
   processing facilities configured to create a plurality of external buffers that are external to the integrated circuit and configured to store the communication packets where each external buffer is associated with a pointer that corresponds to the external buffer; and        a pointer cache configured to store the pointers that correspond to the external buffers,      
       
         wherein the processing facilities are further configured to:  
           allocate the external buffers as the corresponding pointers are read from the pointer cache and de - allocate the external buffers as the corresponding pointers are written back to the pointer cache,    
           transfer an exhaustion signal if a number of the pointers to the de - allocated buffers reaches a minimum threshold, and    
         
           create additional external buffers and their corresponding pointers in response to the exhaustion signal. 
         
       
     
     
       34. An integrated circuit that processes communication packets, the integrated circuit comprising:
   processing facilities configured to create a plurality of external buffers that are external to the integrated circuit and configured to store the communication packets where each external buffer is associated with a pointer that corresponds to the external buffer; and        a pointer cache configured to store the pointers that correspond to the external buffers,      
       
         wherein the processing facilities are further configured to:  
           allocate the external buffers by modifying the pointer cache to indicate that pointers in the pointer cache corresponding to the external buffers are in use and de - allocate the external buffers by modifying the pointer cache to indicate that pointers in the pointer cache corresponding to the external buffers are unused,    
         
           transfer an exhaustion signal if a number of the pointers in the pointer cache corresponding to the external buffers indicated to be unused reaches a minimum threshold, and  
         
         
           create additional external buffers and their corresponding pointers in response to the exhaustion signal. 
         
       
     
     
       35. The integrated circuit of  claim 34  wherein the processing facilities are configured to track the number of the pointers to the de- allocated external buffers.   
     
     
       36. The integrated circuit of  claim 34  wherein the processing facilities are configured to transfer additional pointers to the pointer cache if the number of the pointers to the de- allocated buffers reaches a minimum threshold.   
     
     
       37. The integrated circuit of  claim 34  wherein the processing facilities are configured to transfer an excess portion of the pointers from the pointer cache if the number of the pointers to the de- allocated buffers reaches a maximum threshold.   
     
     
       38. The integrated circuit of  claim 34  wherein the external buffers are distributed among at least two pools. 
     
     
       39. The integrated circuit of  claim 34  wherein the external buffers and the pointers to the external buffers are distributed among a plurality of classes. 
     
     
       40. The integrated circuit of  claim 39  wherein the processing facilities are configured to track the number of the pointers to the de- allocated external buffers for at least one of the classes.   
     
     
       41. The integrated circuit of  claim 39  wherein the processing facilities are configured to track the number of the pointers to the allocated external buffers for at least one of the classes. 
     
     
       42. The integrated circuit of  claim 39  wherein the processing facilities are configured to borrow at least some of the pointers from a first one of the classes for use by a second one of the classes. 
     
     
       43. The integrated circuit of  claim 39  wherein the processing facilities are configured to redistribute at least some of the pointers from a first one of the classes to a second one of the classes. 
     
     
       44. The integrated circuit of  claim 39  wherein the processing facilities are configured to transfer an exhaustion signal if the number of the pointers to the de- allocated buffers in one of the classes reaches a minimum threshold.   
     
     
       45. The integrated circuit of  claim 39  wherein the processing facilities are configured to track the number of the pointers distributed to one of the classes. 
     
     
       46. The integrated circuit of  claim 39  wherein at least one of the classes is associated only with constant bit rate packets. 
     
     
       47. The integrated circuit of  claim 39  wherein at least one of the classes is associated only with available bit rate packets. 
     
     
       48. The integrated circuit of  claim 39  wherein at least one of the classes is associated only with variable bit rate packets. 
     
     
       49. The integrated circuit of  claim 39  wherein at least one of the classes is associated with a set of one or more types of network traffic. 
     
     
       50. The integrated circuit of  claim 39  wherein at least one of the classes is associated only with unspecified bit rate packets. 
     
     
       51. A method of operating an integrated circuit that processes communication packets, the method comprising:
   creating a plurality of external buffers that are external to the integrated circuit and that are configured to store the communication packets;        creating a plurality of pointers where each pointer corresponds to one of the plurality of external buffers;        storing a subset of the plurality of pointers in a pointer cache in the integrated circuit;        allocating the external buffers by modifying the pointer cache to indicate that pointers in the pointer cache corresponding to the external buffers are in use;        de - allocating the external buffers by modifying the pointer cache to indicate that pointers in the pointer cache corresponding to the external buffers are unused;        transferring an exhaustion signal if a number of the pointers indicated to be unused reaches a minimum threshold; and        in response to the exhaustion signal, creating additional external buffers and their corresponding pointers where the additional external buffers are external to the integrated circuit and are configured to store the communication packets.     
     
     
       52. The method of  claim 51  further comprising tracking the number of the pointers to the de- allocated external buffers.   
     
     
       53. The method of  claim 51  further comprising transferring additional pointers to the pointer cache if the number of the pointers to the de- allocated buffers reaches a minimum threshold.   
     
     
       54. The method of  claim 51  further comprising transferring an excess portion of the pointers from the pointer cache if the number of the pointers to the de- allocated buffers reaches a maximum threshold.   
     
     
       55. The method of  claim 51  wherein the external buffers are distributed among at least two pools. 
     
     
       56. The method of  claim 51  wherein the external buffers and the pointers to the external buffers are distributed among a plurality of classes. 
     
     
       57. The method of  claim 56  further comprising tracking the number of the pointers to the de- allocated external buffers for at least one of the classes.   
     
     
       58. The method of  claim 56  further comprising tracking the number of the pointers to the allocated external buffers for at least one of the classes. 
     
     
       59. The method of  claim 56  further comprising borrowing at least some of the pointers from a first one of the classes for use by a second one of the classes. 
     
     
       60. The method of  claim 56  further comprising re- distributing at least some of the pointers from a first one of the classes to a second one of the classes.   
     
     
       61. The method of  claim 56  further comprising tracking the number of pointers distributed to one of the classes. 
     
     
       62. The method of  claim 56  wherein at least one of the classes is associated only with constant bit rate packets. 
     
     
       63. The method of  claim 56  wherein at least one of the classes is associated only with available bit rate packets. 
     
     
       64. The method of  claim 56  wherein at least one of the classes is associated only with variable bit rate packets. 
     
     
       65. The method of  claim 56  wherein at least one of the classes is associated only with unspecified bit rate packets. 
     
     
       66. The method of  claim 56  wherein at least one of the classes is associated with a set of one or more types of network traffic.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.