← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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.

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag