Modular Switch Buffer Optimization via Hash Table Reordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modular switches face challenges in achieving high throughput due to head-of-line congestion and inefficiencies in hash-based forwarding, which leads to packet disorder and increased memory allocation requirements.
Innovation Solution
Implementing a packet buffer architecture using hash tables to manage reorder domains, reducing memory needs and congestion by storing packet descriptors with incremental sequence numbers, and employing a bandwidth manager to optimize credit allocation and packet forwarding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If hash-based forwarding is used to ensure flow ordering, then packet ordering is maintained, but head-of-line congestion occurs and throughput is reduced
Solution Approach 1:
The patent segments the reorder buffer into multiple smaller buffers, each dedicated to a specific flow or ordering domain. This segmentation allows parallel processing of different flows simultaneously, eliminating the head-of-line congestion that occurs when a single buffer must sequentially process all packets. Each segment can independently reorder packets for its assigned flow without blocking other flows, thereby maintaining packet ordering while improving overall throughput.
2Reliability
If static buffer allocation is used to handle packet disorder, then packet reordering capability is provided, but memory allocation requirements increase
Solution Approach 1:
The patent implements dynamic buffer allocation where buffer resources are allocated based on actual traffic patterns and flow requirements rather than static pre-allocation. The system monitors packet disorder levels and dynamically adjusts buffer sizes and assignments, allowing memory resources to be efficiently utilized only when needed for reordering, thereby reducing overall memory allocation while maintaining reliable packet reordering capability.
3Quantity of substance
If dynamic reorder buffer sizes are used to reduce memory, then memory efficiency improves, but linked list management complexity increases
Solution Approach 1:
The patent replaces the mechanical linked list management system with a more efficient data structure or indexing mechanism. Instead of using linked lists that require complex node management and pointer operations, the system employs direct addressing tables, hash tables, or array-based structures that provide O(1) access and eliminate the need for intricate list manipulation, thereby reducing management complexity while maintaining dynamic buffer size benefits.
4Quantity of substance
If external packet buffers are used to provide buffering capacity, then buffer capacity is increased, but access speed decreases
Solution Approach 1:
The patent implements a nested buffer architecture where small, fast reorder buffers are nested within or integrated with larger, slower external packet buffers. The fast internal buffers handle time-critical reordering operations with minimal latency, while the larger external buffers provide additional capacity for long-term storage and overflow handling. This hierarchical nesting allows the system to achieve both high buffer capacity and fast access speeds by appropriately matching buffer types to operational requirements.
Data Source
AI summary
In a packet network of ingress nodes and egress nodes connected by a fabric transmit queues are associated with a hash table that stores packet descriptors. When new packets are received in the ingress nodes, credits are obtained from the egress nodes that reflect capacities of the transmit queues to accommodate the new packets. The credits are consumed by transmitting at least a portion of the new packets from the ingress nodes to the egress nodes via the fabric and storing descriptors of the new packets in a hash table. In order to transmit the packets in order by sequence number, when a desired packet sequence number is found by a hash lookup, the new packet having that sequence number is forwarded through the egress nodes.


