Pseudo-random hardware resource allocation via index list pointer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing resource allocation systems in computing devices face challenges in achieving even allocation of hardware resources across multiple hardware elements, particularly when the number of elements is not a power of two or changes dynamically, and are susceptible to specific request patterns leading to uneven utilization.

Innovation Solution

A pseudo-random allocation method using a resource list and index list, where each hardware element is identified by multiple entries in the lists, ensuring fair distribution regardless of the number of elements and resisting specific request patterns, implemented through a pseudo-random allocation module that iteratively selects hardware elements for resource requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If resources are allocated sequentially or round-robin from a pool of hardware elements, then the allocation process is simple to implement, but a single hardware element can become over-utilized and limit overall system performance when the number of elements is not a power of two or changes dynamically

Engineering Contradiction:
Improvesystem performanceVSAvoidallocation system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resource allocation by using a pseudo-random number generator that continuously changes the selection pattern, allowing the system to adapt to varying workload patterns and prevent any single hardware element from becoming a bottleneck, while maintaining simplicity through software-based implementation

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the allocation parameter from fixed sequential/round-robin patterns to variable pseudo-random patterns, where the selection probability and sequence are dynamically adjusted based on the pseudo-random number generator state, achieving better load distribution without increasing hardware complexity

Inventive Principle:
Principle #35Parameter changes

2Reliability

If multiple criteria are used to define even usage (such as capacity and bandwidth for memory), then the allocation fairness is improved, but the system complexity increases significantly

Engineering Contradiction:
Improveallocation fairnessVSAvoidmeasurement and control complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a pseudo-random number generator as an intermediary mechanism that indirectly addresses multiple allocation criteria simultaneously, avoiding the need for complex real-time measurement and control of each individual criterion while still achieving fair distribution across capacity, bandwidth, and other resource dimensions

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The allocation system uses self-service through pseudo-random selection where the system automatically distributes resources without requiring external measurement or control mechanisms for each criterion, allowing the randomization process to naturally balance multiple factors including capacity and bandwidth usage

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9311148B2Pseudo-random hardware resource allocation through the plurality of resource controller based on non-repeating sequence of index list entries
Publication Date: 2016.04.12 TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
  • US9311148B2 patent drawing
  • US9311148B2 patent drawing
  • US9311148B2 patent drawing

AI summary

Methods and apparatus for pseudo-random hardware resource allocation through a plurality of hardware elements. In an embodiment, resource list entries are configured to each identify one hardware element of the plurality of hardware elements. Index list entries are configured to each identify one resource list entry. An index list pointer is set to identify a first index list entry of the plurality of index list entries, and hardware resources are requested from a first hardware element of the plurality of hardware elements by identifying, using the index list pointer, the first index list entry; identifying, using the first index list entry, a first resource list entry; selecting the hardware element identified by the first resource list entry as the first hardware element; and sending a request for hardware resources to the first hardware element.