Hardware Load Balancer Using Random Number Sub-Range Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing load balancing methods face challenges in efficiently distributing tasks across resources, particularly when the number of resources is not a power of 2, leading to inefficiencies and bias in digital hardware implementation.
Innovation Solution
A system and method that divides a total range of numbers into contiguous, non-overlapping sub-ranges associated with each resource, using a pseudo-random number to select the resource based on its sub-range, and adjusting sub-range sizes to minimize bias, ensuring all resources carry a substantially equal load.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a modulo operation is used to assign tasks to resources, then load balancing is achieved, but hardware implementation efficiency deteriorates when the number of resources is not a power of 2
Solution Approach 1:
The patent segments the range of possible task indices into multiple contiguous sub-ranges, where each sub-range corresponds to a specific resource. Instead of using a complex modulo operation, the system divides the total range into N sub-ranges (where N is the number of resources), and each sub-range test circuit checks whether the task index falls within its assigned sub-range. This segmentation approach replaces the complex modulo operation with simpler range comparison operations, achieving both load balancing and hardware efficiency.
2Manufacturing precision
If a long pseudo-random number is used to reduce bias, then load distribution uniformity improves, but digital logic complexity grows exponentially
Solution Approach 1:
The patent extracts only the necessary portion of the pseudo-random number for the load balancing operation. Instead of using the entire long pseudo-random number, the system extracts a sufficient number of most significant bits that provide adequate randomness and uniformity for the specific application. This extracted subset of bits is then used to determine which sub-range the task index falls into, achieving good load distribution without the exponential complexity of processing the full long random number.
Solution Approach 2:
The patent changes the parameter of random number length from a fixed large value to a variable length that is adapted to the specific requirements of the load balancing operation. By analyzing the relationship between the number of resources and the required randomness, the system determines the optimal number of bits needed, which is typically much smaller than the full pseudo-random number. This parameter adjustment maintains load distribution uniformity while dramatically reducing digital logic complexity.
3Manufacturing precision
If sub-ranges are made equal size, then load distribution uniformity improves, but handling non-power-of-2 resource counts becomes more difficult
Solution Approach 1:
The patent introduces asymmetry in the sub-range design by allowing the last sub-range to have a different size than the others when the total number of resources is not a power of 2. The first N-1 sub-ranges are made equal size, while the Nth sub-range absorbs the remaining range to ensure complete coverage. This asymmetric approach maintains simplicity in the hardware implementation while achieving uniform load distribution across all resources, as the slight size difference in the last sub-range does not significantly impact overall balance.
Data Source
AI summary
A system and method for selecting a resource from among a plurality of resources. A total range of numbers is divided into a plurality of sub-ranges, each associated with a respective one of the resources. An indexing number, e.g., a random number, is generated and, when it falls within the total range of numbers, the resource associated with the sub-range into which the indexing number falls is selected. When the indexing number falls outside of the total range, a resource associated with the difference between the indexing number and the greatest number in the total range is selected.


