Queue bandwidth estimation for management of shared buffers and allowing visibility of shared buffer status

US12474833B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12474833-B2
Application numberUS-202117516731-A
CountryUS
Kind codeB2
Filing dateNov 2, 2021
Priority dateNov 2, 2021
Publication dateNov 18, 2025
Grant dateNov 18, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A network device includes a memory and a memory management circuit. The memory is to store a shared buffer. The memory management circuit is to estimate respective bandwidth measures for one or more queues used in processing packets in the network device, and to allocate and deallocate segments of the shared buffer to at least one of the queues based on the bandwidth measures.

First claim

Opening claim text (preview).

The invention claimed is: 1 . A network device, comprising: a memory, to store a shared buffer; and a memory management circuit, to: estimate respective bandwidth measures for multiple queues used in processing packets in the network device, the bandwidth measures being indicative of memory access bandwidths to or from the respective queues; and allocate and deallocate segments of the shared buffer to at least one of the queues based on the bandwidth measures using a criterion that, for first and second queues having equal occupancies but the first queue having a larger bandwidth measure than the second queue, would allocate a larger number of segments to the first queue than to the second queue. 2 . The network device according to claim 1 , wherein the memory management circuit is to measure sizes of data written to the queues during respective time periods, and to estimate the respective bandwidth measures in accordance with the sizes of data. 3 . The network device according to claim 1 , wherein the memory management circuit is to measure sizes of data read from the queues during respective time periods, and to estimate the respective bandwidth measures in accordance with the sizes of data. 4 . The network device according to claim 1 , wherein the memory management circuit is to allocate one or more segments of the shared buffer to a given queue responsively to a comparison of a bandwidth measure of the given queue and a preset maximum bandwidth limit. 5 . The network device according to claim 1 , wherein the memory management circuit is to deallocate one or more segments of the shared buffer from a given queue responsively to a comparison of a bandwidth measure of the given queue and a preset minimum bandwidth limit. 6 . The network device according to claim 1 , wherein the memory management circuit is to assign a quota of segments of the shared buffer to a given queue in accordance with a bandwidth measure of the given queue, and to allocate the segments of the shared buffer to the given queue from the assigned quota. 7 . The network device according to claim 1 , wherein the memory management circuit is to assign a quota of segments of the shared buffer to a given queue in accordance with a bandwidth measure of the given queue, and to allocate reserved segments of the memory to the given queue from the quota. 8 . The network device according to claim 1 , wherein the bandwidth measures comprise one or more bandwidth histograms. 9 . The network device according to claim 1 , wherein the memory management circuit is to generate an interrupt responsively to a bandwidth measure of a queue. 10 . The network device according to claim 1 , wherein the memory management circuit is to modify an allocation of segments of the shared buffer to a first queue, in response to a bandwidth measure of a second queue that shares a common resource with the first queue. 11 . The network device according to claim 10 , wherein the common resource is a shared-buffer pool. 12 . The network device according to claim 1 , wherein the memory management circuit is to modify a congestion control algorithm responsively to a bandwidth measure. 13 . A method, comprising: estimating respective bandwidth measures for multiple queues used in processing packets in a network device, the bandwidth measures being indicative of memory access bandwidths to or from the respective queues; and allocating and deallocating segments of a shared buffer of the network device to at least one of the queues, based on the bandwidth measures using a criterion that, for first and second queues having equal occupancies but the first queue having a larger bandwidth measure than the second queue, would allocate a larger number of segments to the first queue than to the second queue. 14 . The method according to claim 13 , wherein estimating the bandwidth measures comprises measuring sizes of data written to the queues during respective time periods, and estimating the respective bandwidth measures in accordance with the sizes of data. 15 . The method according to claim 13 , wherein estimating the bandwidth measures comprises measuring sizes of data read from the queues during respective time periods, and estimating the respective bandwidth measures in accordance with the sizes of data. 16 . The method according to claim 13 , wherein allocating the segments comprises allocating one or more segments of the shared buffer to a given queue responsively to a comparison of a bandwidth measure of the given queue and a preset maximum bandwidth limit. 17 . The method according to claim 13 , wherein allocating the segments comprises deallocating one or more segments of the shared buffer from a given queue responsively to a comparison of a bandwidth measure of the given queue and a preset minimum bandwidth limit. 18 . The method according to claim 13 , wherein allocating the segments comprises assigning a quota of segments of the shared buffer to a given queue in accordance with a bandwidth measure of the given queue, and allocating the segments of the shared buffer to the given queue from the assigned quota. 19 . The method according to claim 13 , wherein allocating the segments comprises assigning a quota of segments of the shared buffer to a given queue in accordance with a bandwidth measure of the given queue, and allocating reserved segments of the memory to the given queue from the quota. 20 . The method according to claim 13 , wherein the bandwidth measures comprise one or more bandwidth histograms. 21 . The method according to claim 13 , and comprising generating an interrupt responsively to a bandwidth measure of a queue. 22 . The method according to claim 13 , wherein allocating and deallocating the segments comprises modifying an allocation of segments of the shared buffer to a first queue, in response to a bandwidth measure of a second queue that shares a common resource with the first queue. 23 . The method according to claim 22 , wherein the common resource is a shared-buffer pool. 24 . The method according to claim 13 , and comprising modifying a congestion control algorithm responsively to a bandwidth measure. 25 . A method in a network device, the method comprising: processing packets in the network device using multiple queues; estimating bandwidth measures for one or more of the queues, the bandwidth measures being indicative of memory access bandwidths to or from the respective queues; and based on the bandwidth measures, allocating and deallocating segments of a shared buffer of the network device to at least one of the queues using a criterion that, for first and second queues having equal occupancies but the first queue having a larger bandwidth measure than the second queue, would allocate a larger number of segments to the first queue than to the second queue.

Assignees

Inventors

Classifications

  • Data buffering arrangements · CPC title

  • Single storage device · CPC title

  • past bandwidth allocation · CPC title

  • by attributing bandwidth to queues · CPC title

  • Common buffer combined with individual queues · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12474833B2 cover?
A network device includes a memory and a memory management circuit. The memory is to store a shared buffer. The memory management circuit is to estimate respective bandwidth measures for one or more queues used in processing packets in the network device, and to allocate and deallocate segments of the shared buffer to at least one of the queues based on the bandwidth measures.
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/0604. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 18 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).