Dynamic Buffer Pool for PCI Express Switch Credit Management
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If maximum credits are allocated to accommodate all traffic permutations, then system performance is optimized, but device complexity and hardware resources increase
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.
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.
3Measurement precision
If separate header and payload credit pools are used, then credit management precision is improved, but device complexity increases
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.
Data Source
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.


