Credit-Based Resource Allocator Circuit for Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing resource allocator circuits in network appliances face challenges in efficiently allocating tasks across processing entities, particularly in balancing load and identifying the most suitable processing entity with available resources, especially when multiple entities can perform the same tasks and some become overburdened.

Innovation Solution

A high-speed credit-based resource allocator circuit utilizing bubble sorting module circuits organized in chains, where each module stores resource and processing entity values, allowing for efficient allocation and load balancing by swapping values to ensure the processing entity with the most available resources is chosen for task allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional resource allocation schemes (round-robin, weighted round-robin) are used, then task allocation is performed, but the allocation does not accurately reflect actual resource availability and processing entities may become overburdened

Engineering Contradiction:
Improvetask allocation efficiencyVSAvoidresource tracking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a feedback mechanism where processing entities send allocation response messages back to the allocator circuit when tasks are completed. The allocator circuit uses this feedback to update credit values in bubble sorting module circuits, ensuring that resource availability information is continuously refreshed and reflected in subsequent allocation decisions. This closed-loop feedback system resolves the contradiction by maintaining accurate resource tracking through responsive updates rather than complex continuous monitoring.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Processing entities autonomously manage their own resource states by generating allocation response messages that indicate when resources become available. Instead of the allocator circuit continuously querying each processing entity, the system allows processing entities to self-report their resource availability, simplifying the overall tracking mechanism while maintaining accurate productivity information.

Inventive Principle:
Principle #25Self-service

2Measurement precision

If the allocator monitors all processing entities to identify the most suitable one, then accurate resource availability is tracked, but the allocation speed decreases due to comprehensive monitoring requirements

Engineering Contradiction:
Improveresource availability accuracyVSAvoidallocation speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The patent introduces bubble sorting module circuits as intermediary elements between the allocator circuit and processing entities. These intermediary modules store credit values and automatically perform bubble sorting operations to identify the processing entity with the most available resources. This intermediary layer resolves the contradiction by handling the complex comparison and selection logic in hardware, enabling accurate resource tracking without requiring slow software-based monitoring of all entities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces traditional software-based resource monitoring and selection algorithms with hardware-based bubble sorting circuitry. The bubble sorting module circuits use dedicated hardware logic to compare credit values and identify the optimal processing entity, substituting mechanical/combinatorial logic for software processing. This substitution resolves the speed-accuracy contradiction by performing accurate resource availability tracking through parallel hardware comparisons rather than sequential software monitoring.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If load balancing is implemented to spread processing evenly, then overburdening is reduced, but the complexity of managing multiple processing entities increases

Engineering Contradiction:
Improveload distribution balanceVSAvoidprocessing entity management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses credit values as dynamic parameters that change based on resource availability. By modifying the credit parameter in response to allocation requests and completions, the system automatically adjusts load distribution without requiring complex management logic. The bubble sorting mechanism then uses these changed parameters to identify the optimal processing entity, resolving the contradiction by using simple parameter updates rather than complex management procedures.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the resource allocation function into distinct components: the allocator circuit receives allocation requests, bubble sorting module circuits perform load balancing based on credit values, and processing entities execute tasks. This segmentation resolves the management complexity issue by distributing functions across specialized components rather than requiring a single complex management system to handle all aspects of load balancing.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9282051B2Credit-based resource allocator circuit
Publication Date: 2016.03.08 NETRONOME SYSTEMS INC
  • US9282051B2 patent drawing
  • US9282051B2 patent drawing
  • US9282051B2 patent drawing

AI summary

A high-speed credit-based allocator circuit receives an allocation request to make an allocation to one of a set of a processing entities. The allocator circuit maintains a chain of bubble sorting module circuits for the set, where each bubble sorting module circuit stores a resource value and an indication of a corresponding processing entity. A bubble sorting operation is performed so that the head of the chain tends to indicate the processing entity of the set that has the highest amount of the resource (credit) available. The allocation requested is made to the processing entity indicated by the head module circuit of the chain. The amount of the resource available to each processing entity is tracked by adjusting the resource values as allocations are made, and as allocated tasks are completed. The allocator circuit is configurable to maintain multiple chains, thereby supporting credit-based allocations to multiple sets of processing entities.