Dynamic Buffer Pool for PCI Express Switch Credit Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In PCI Express systems, managing credits for Transaction Layer Packets (TLPs) is challenging due to varying data rates and traffic mixes, leading to inefficiencies with fixed credit schemes that require excessive hardware resources and struggle to accommodate bursty traffic.

Innovation Solution

Implementing a dynamic buffer pool that dynamically assigns credits from a shared pool when initial credits on a port are low, using separate or shared header and payload credit pools to manage credits efficiently and prevent buffer overflow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fixed credits are allocated to each port, then buffer overflow is prevented, but memory usage increases and hardware resources are wasted

Engineering Contradiction:
Improvebuffer overflow preventionVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges separate fixed credit pools into a single shared credit pool that serves all ports. Instead of allocating dedicated buffers to each port, the system uses one common buffer pool that dynamically serves multiple ports, reducing total memory usage while maintaining buffer overflow prevention through shared resource management.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements dynamic credit allocation where credits are not fixed per port but are dynamically assigned from the shared pool based on actual traffic needs. The credit pool sizes and allocations adjust dynamically according to traffic patterns, allowing the system to prevent buffer overflow only when necessary while minimizing memory usage during normal operation.

Inventive Principle:
Principle #15Dynamics

2Productivity

If maximum credits are allocated to accommodate all traffic permutations, then system performance is optimized, but device complexity and hardware resources increase

Engineering Contradiction:
Improvesystem performanceVSAvoidhardware resources
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared credit pool serves multiple ports and multiple traffic types universally, rather than having dedicated pools for each port-traffic combination. This universal pool handles all credit allocation needs dynamically, reducing hardware complexity while maintaining the ability to optimize performance for different traffic permutations through software-based management.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system changes credit allocation parameters dynamically based on traffic conditions rather than using fixed maximum values. Credit pool sizes and allocation rates are adjusted as parameters according to actual traffic patterns, allowing optimal performance without requiring hardware resources for maximum possible credits in all scenarios simultaneously.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If separate header and payload credit pools are used, then credit management precision is improved, but device complexity increases

Engineering Contradiction:
Improvecredit management precisionVSAvoidcredit pool structure
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the shared credit pool into header credits and payload credits, allowing separate tracking and management of these two credit types. This segmentation enables precise credit management for different TLP components while still using a shared underlying buffer pool, achieving measurement precision without the full complexity of completely separate pools for each port.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8797857B2Dynamic buffer pool in PCIExpress switches
Publication Date: 2014.08.05 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US8797857B2 patent drawing
  • US8797857B2 patent drawing
  • US8797857B2 patent drawing

AI summary

In a first embodiment of the present invention, a method for handling a Transaction Layer Packets (TLPs) from devices in a switch is provided, the method comprising: subtracting a first number of credits from a credit pool associated with a first port on which a first device is connected; determining if the amount of credits in the credit pool associated with the first port is less than a first predetermined threshold; and if the amount of credits in the credit pool associated with the first port is less than the first predetermined threshold, assigning a second number of credits from a shared credit pool to the credit pool associated with the first port.