Shared Buffer Management for Network Switches

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As the number of senders to a network switch increases, the buffering required for packet storage grows significantly, consuming a large amount of chip area and leading to inefficiencies in managing packet memory, particularly due to Head-Of-Line (HOL) blocking and increased bandwidth requirements.

Innovation Solution

The method involves separating packet memory into shared pool buffers and dedicated per-sender pools, with packets initially stored in shared pools and then allocated to dedicated pools if necessary, using a credit-controlled or Xon-Xoff back pressure mechanism to manage flow control and prevent buffer overflow, while also utilizing a global multicast pool for multi-copy packets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated buffer space is allocated for each port/priority, then HOL blocking is prevented and line rate performance is maintained, but the total buffering required grows linearly with the number of senders, consuming significant chip area

Engineering Contradiction:
ImproveHOL blocking preventionVSAvoidchip area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The buffer memory is segmented into multiple pools: a shared pool for general packet storage and dedicated pools for each port/priority combination. This segmentation allows the system to provide dedicated buffering where needed (preventing HOL blocking) while sharing buffering resources where possible (reducing total chip area consumption).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different buffer pools are assigned different qualities or characteristics tailored to specific needs. The shared pool provides general buffering capacity, while dedicated pools provide priority-assured buffering for specific ports. This local differentiation allows efficient resource utilization while maintaining performance guarantees where required.

Inventive Principle:
Principle #3Local quality

2Area of stationary object

If shared pool buffer is used for all packets, then chip area is reduced, but packets may be dropped when the shared pool is full, reducing reliability

Engineering Contradiction:
Improvechip areaVSAvoidpacket delivery reliability
Core Design Contradiction:
Area of stationary objectVSReliability

Solution Approach 1:

The buffer system is divided into a shared pool and multiple dedicated pools. The shared pool handles general packet storage to save area, while dedicated pools ensure reliable packet delivery for specific ports by providing guaranteed buffering capacity, preventing packet drops when the shared pool is full.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The shared pool acts as an intermediary buffer that can receive packets from multiple sources. When the shared pool is full, packets are redirected to appropriate dedicated pools, ensuring reliable delivery while maintaining area efficiency. The shared pool mediates between area constraints and reliability requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If per-sender buffer allocation is implemented, then packet memory management efficiency is improved, but the complexity of managing multiple buffer pools and credit control mechanisms increases

Engineering Contradiction:
Improvepacket memory management efficiencyVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

A credit-based feedback mechanism is implemented where the shared pool provides credits to dedicated pools based on availability. This feedback system automatically manages buffer allocation and redirects packets when needed, improving management efficiency while the structured feedback protocol keeps complexity controllable.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The buffer management system is designed to be self-managing through automated credit allocation and packet redirection mechanisms. The shared pool automatically provides credits to dedicated pools, and the system self-adjusts packet routing based on buffer availability, reducing the need for external management complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10050896B2Management of an over-subscribed shared buffer
Publication Date: 2018.08.14 MARVELL ASIA PTE LTD
  • US10050896B2 patent drawing
  • US10050896B2 patent drawing
  • US10050896B2 patent drawing

AI summary

A method of managing a buffer (or buffer memory) includes utilizing one or more shared pool buffers, one or more port/priority buffers and a global multicast pool. When packets are received, a shared pool buffer is utilized; however, if a packet does not fit in the shared pool buffer, then the appropriate port/priority buffer is used. If the packet is a multicast packet, then the global multicast pool is utilized for copies of the packet.