Queue Management Circuitry Lock Manager for Packet Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current queue management systems, such as the Intel Dynamic Load Balancer, face limitations in scalability and performance when handling high packet throughput, particularly due to the overhead of bridging cores and high load balancing requirements, which can limit the benefits of adding additional worker threads.
Innovation Solution
The proposed solution reconfigures the queue management circuitry to function as a 'lock manager', distributing locks with sequence numbers to worker threads, allowing for efficient sharing of NIC queues and maintaining packet order, thereby reducing the load on bridging cores and improving scalability by enabling parallel processing without dedicated bridging cores.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional queue management systems with bridging cores are used, then packet processing can be performed, but scalability is limited and performance degrades at high packet throughput
Solution Approach 1:
The patent extracts the load balancing function from dedicated bridging cores and integrates it into the queue management circuitry itself. The queue manager now directly distributes packets to worker threads without requiring separate bridging core infrastructure, eliminating the scalability bottleneck while maintaining packet processing capability
Solution Approach 2:
The queue management circuitry is designed to perform multiple functions: traditional queue management plus integrated load balancing. This multi-functional approach eliminates the need for separate bridging cores, reducing system complexity while improving scalability to high packet throughput scenarios
2Productivity
If additional worker threads are added to increase parallel processing, then processing capacity increases, but load balancing requirements increase and performance is limited
Solution Approach 1:
The queue management circuitry autonomously performs load balancing decisions and packet distribution to worker threads without external control. Each packet is independently routed based on current worker thread availability, enabling the system to automatically adapt to varying loads across multiple worker threads without increasing overall system power requirements
Solution Approach 2:
The load balancing mechanism dynamically adjusts packet distribution based on real-time worker thread status and queue depths. This dynamic approach allows the system to efficiently utilize any number of worker threads without being constrained by fixed load balancing configurations, enabling scalable parallel processing
3Reliability
If dedicated bridging cores are used for queue management, then packet processing is reliable, but system scalability is reduced and performance requirements increase
Solution Approach 1:
The patent merges the functions of bridging cores and queue management into a single integrated queue management circuitry. This consolidation maintains reliable packet processing through dedicated hardware queue management while eliminating the need for separate bridging core infrastructure, thereby improving system scalability without sacrificing reliability
Data Source
Figure 1a~1b
Figure 1c
Figure 2
AI summary
Examples relate to an apparatus, device, method, and computer program for processing a sequence of units of data, and of a computer program comprising such an apparatus or device. The apparatus comprises processing circuitry configured to obtain the sequence of units of data, obtain tokens indicating a readiness of a plurality of worker threads being executed on the processing circuitry, and process sub-sequences of the sequence of units of data by selecting, by a queue management circuitry of the processing circuitry, a worker thread from the plurality of worker threads based on the obtained tokens indicating the readiness, providing, by the queue management circuitry, a lock to a queue associated with the worker thread, the lock being associated with a resource comprising a sub-sequence of the sequence of units of data, obtaining, by the queue management circuitry, the lock from the worker thread after the worker thread has at least partially processed the sub-sequence of units of data stored in the resource, and proceeding with the next sub-sequence after the lock has been obtained.