US5838994A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and apparatus for the dynamic allocation of buffers in a digital communications network
Assignee: Cisco Technology Inc
•
Filing: 1996-01-11
•
Granted: 1998-11-17
•
Expires: 2016-01-11
Abstract
Abstract A method for managing buffer memory in a communications controller that transmits data over a plurality of channels wherein the buffer memory comprises a memory space of B total . A first subset of the memory space B total is location to queues associated with each of the plurality of channels. A second subset of the memory space B total is reserved for allocation to queues associated with channels that are activated to transmit data. Any remaining memory space from the memory space B total is specified as free for allocation to any queue associated with a channel that is activated to transmit data.
Inventors
- 👤 Homayoun S. Valizadeh
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 23:35
CPC Classifications
H; H04; H04Q; H04Q11/00; H04Q11/04; H04Q11/0428; H04Q11/0478; H04L; H04L12/00; H04L12/54; H04L12/56; H04L12/5601; H04L2012/5678; H04L2012/5681; Y; Y10; Y10S; Y10S707/00; Y10S707/99931
Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
142 words
A method for managing buffer memory in a communications controller that transmits data over a plurality of channels, wherein the buffer memory has a memory space of B total , the method comprising: reserving a first subset of the memory space B total for allocation to queues associated with each of the plurality of channels based on an aggregate rate of data transmission over the plurality channels such that each queue is provided a minimum reservation of memory space based on a rate of data transmission for an associated channel; reserving a second subset of the memory space B total for allocation to queues associated with channels that are activated to transmit data; and specifying any remaining memory space of the memory space B total as free for allocation to any queue associated with a channel that is activated to transmit data.
Claim 2
Independent Claim
142 words
A method for managing buffer memory in a communications controller that transmits data over a plurality of channels, wherein the buffer memory has a memory space of B total , the method comprising: reserving a first subset of the memory space B total for allocation to queues associated with each of the plurality of channels based on an aggregate rate of data transmission over the plurality channels such that each queue is provided a minimum reservation of memory space based on a rate of data transmission for an associated channel; reserving a second subset of the memory space B total for allocation to queues associated with channels that are activated to transmit data; and specifying any remaining memory space of the memory space B total as free for allocation to any queue associated with a channel that is activated to transmit data.
Claim 3
Independent Claim
196 words
A method for managing buffer memory in a communications controller that transmits data over a plurality of channels, wherein the buffer memory has a memory space of B total , the method comprising: reserving a first subset of the memory space B total for allocation to queues associated with each of the plurality of channels based on an aggregate rate of data transmission over the plurality channels such that each queue is provided a minimum reservation of memory space based on a rate of data transmission for an associated channel; reserving a second subset of the memory space B total for allocation to queues associated with channels that are activated to transmit data based on an aggregate rate of data transmission over activated channels and an aggregate of initial burst size for activated channels such that each queue associated with an activated channel is provided a reservation of memory space based on a rate of data transmission and an initial burst size of an associated activated channel; and specifying any remaining memory space of the memory space B total as free for allocation to any queue associated with a channel that is activated to transmit data.
Claim 4
Independent Claim
196 words
A method for managing buffer memory in a communications controller that transmits data over a plurality of channels, wherein the buffer memory has a memory space of B total , the method comprising: reserving a first subset of the memory space B total for allocation to queues associated with each of the plurality of channels based on an aggregate rate of data transmission over the plurality channels such that each queue is provided a minimum reservation of memory space based on a rate of data transmission for an associated channel; reserving a second subset of the memory space B total for allocation to queues associated with channels that are activated to transmit data based on an aggregate rate of data transmission over activated channels and an aggregate of initial burst size for activated channels such that each queue associated with an activated channel is provided a reservation of memory space based on a rate of data transmission and an initial burst size of an associated activated channel; and specifying any remaining memory space of the memory space B total as free for allocation to any queue associated with a channel that is activated to transmit data.
Claim 5
Dependent Claim
32 words
The method of claim 1, further comprising allocating memory space from the first subset, the second subset, and the remaining memory space, as needed, to each queue associated with an activated channel.
Claim 6
Dependent Claim
50 words
The method of claim 3, wherein all of the plurality channels are activated such that a sum of the first and second subsets is equal to B total , the step of allocating memory space being limited to allocating memory space only from the first and second subsets of buffers.
Claim 7
Dependent Claim
39 words
The method of claim 3, wherein the step of allocating memory space is limited such that each activated channel has an associated maximum number of bytes from the remaining memory space that may be allocated to its associated queue.
Claim 8
Independent Claim
176 words
A method for managing buffer memory space in a communications controller that transmits data over a plurality of channels, wherein a size of the buffer memory space is based on an aggregate rate of transmission for the plurality of channels, comprising: reserving a fixed region of the buffer memory space for allocation to buffer queues associated with each of the plurality of channels such that a minimum number of buffers is reserved for allocation to each buffer queue; reserving a reserved region of the buffer memory space for allocation to only those buffer queues associated with channels that are activated to transmit data wherein a size of the reserved region is varied dynamically in response to initial burst sizes of channels that are activated to transmit data; and specifying any remaining buffers as being in a common region of the buffer memory space wherein the remaining buffers are free for allocation to any buffer queue associated with a channel that is activated to transmit data if less than all of the channels are activated for transmission.
Claim 9
Independent Claim
176 words
A method for managing buffer memory space in a communications controller that transmits data over a plurality of channels, wherein a size of the buffer memory space is based on an aggregate rate of transmission for the plurality of channels, comprising: reserving a fixed region of the buffer memory space for allocation to buffer queues associated with each of the plurality of channels such that a minimum number of buffers is reserved for allocation to each buffer queue; reserving a reserved region of the buffer memory space for allocation to only those buffer queues associated with channels that are activated to transmit data wherein a size of the reserved region is varied dynamically in response to initial burst sizes of channels that are activated to transmit data; and specifying any remaining buffers as being in a common region of the buffer memory space wherein the remaining buffers are free for allocation to any buffer queue associated with a channel that is activated to transmit data if less than all of the channels are activated for transmission.
Claim 10
Dependent Claim
52 words
The method of claim 6, further including providing a distinct set of queuing parameters each buffer queue associated with an activated channel, each set of queuing parameters including a target queue depth value based on a number of buffers reserved for allocation for the buffer queue from the fixed and reserved regions.
Claim 11
Dependent Claim
43 words
The method of claim 7, further including determining whether to allocate a buffer to a particular buffer queue by comparing the target queue depth value to an actual queue depth value if the fixed and reserved regions comprise all of the memory space.
Claim 12
Dependent Claim
69 words
The method of claim 6, further including providing a distinct set of queuing parameters each buffer queue associated with an activated channel, each set of queuing parameters including a maximum queue depth value based on a number of buffers reserved for allocation for the buffer queue from the fixed and reserved regions and a maximum number of buffers available for allocation to that buffer queue from the common region.
Claim 13
Dependent Claim
31 words
The method of claim 9, further including determining whether to allocate a buffer to a particular buffer queue by comparing the maximum queue depth value to an actual queue depth value.
Claim 14
Dependent Claim
189 words
A communications controller for transmitting data from a first system to a second system via a plurality of channels, comprising: a buffer pool partitioned into a fixed region, a reserved region, and a common region, wherein buffers from the fixed region are reserved for allocation to buffer queues associated with each of the channels, buffers from the reserved region are reserved for allocation to buffer queues associated with channels activated for transmission wherein a size of the reserved region is varied dynamically in response to initial burst sizes of channels that are activated to transmit data, and the common region comprises any remaining buffers that are free for allocation to any buffer queue; and a queuing processor coupled to receive data from the first system and store the data in the buffer queues; a servicing processor coupled to transmit data from the buffer queues to the second system; and a distinct set of queuing parameters for each buffer queue maintained by the servicing processor, the queuing processor using the queuing parameters to allocate buffers to buffer queues, the servicing processor using the queuing parameters to service the buffer queues.
Claim 15
Dependent Claim
189 words
A communications controller for transmitting data from a first system to a second system via a plurality of channels, comprising: a buffer pool partitioned into a fixed region, a reserved region, and a common region, wherein buffers from the fixed region are reserved for allocation to buffer queues associated with each of the channels, buffers from the reserved region are reserved for allocation to buffer queues associated with channels activated for transmission wherein a size of the reserved region is varied dynamically in response to initial burst sizes of channels that are activated to transmit data, and the common region comprises any remaining buffers that are free for allocation to any buffer queue; and a queuing processor coupled to receive data from the first system and store the data in the buffer queues; a servicing processor coupled to transmit data from the buffer queues to the second system; and a distinct set of queuing parameters for each buffer queue maintained by the servicing processor, the queuing processor using the queuing parameters to allocate buffers to buffer queues, the servicing processor using the queuing parameters to service the buffer queues.
Claim 16
Dependent Claim
32 words
The method of claim 2, further comprising allocating memory space from the first subset, the second subset, and the remaining memory space, as needed, to each queue associated with an activated channel.
Claim 17
Dependent Claim
50 words
The method of claim 12, wherein all of the plurality channels are activated such that a sum of the first and second subsets is equal to B total , the step of allocating memory space being limited to allocating memory space only from the first and second subsets of buffers.
Claim 18
Dependent Claim
39 words
The method of claim 12, wherein the step of allocating memory space is limited such that each activated channel has an associated maximum number of bytes from the remaining memory space that may be allocated to its associated queue.
References Cited (Backward Citations)
US4258418A
Cited
US4445176A
Cited
US4603382A
Cited
US4783730A
Cited
US5046039A
Cited
US5179665A
Cited
US5014265A
Cited
US5412781A
Cited
US5432908A
Cited
US5524214A
Cited
US5405511A
Cited
US5600820A
Cited
US5537635A
Cited
US5682553A
Cited
US5784698A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2001-11-16 | 2002-05-18 | 2002-11-17 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2005-11-16 | 2006-05-18 | 2006-11-17 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2009-11-16 | 2010-05-18 | 2010-11-17 | $7700.00 | Window Closed / Lapsed |