Random Arbiter Using Permutation Circuits for Scalable Fairness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing random arbitration schemes are computationally intensive and lack scalability, often failing to maintain fairness and prevent starvation among clients competing for a limited resource.

Innovation Solution

The implementation of a permutation circuit and arbitration circuit that applies a randomly selected permutation to request vectors, using multiplexers and Benes networks to ensure fairness by identifying the winning client through an inverse permutation, thereby assigning resources efficiently across multiple clients.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If known random arbitration schemes are used, then randomness in arbitration is achieved, but computational complexity increases and scalability is limited

Engineering Contradiction:
Improvefairness in arbitrationVSAvoidcircuit complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The arbitration process is segmented into distinct functional blocks: a permutation circuit that applies random permutations to request vectors, an arbitration unit that selects winners from permuted vectors, and an inverse permutation circuit that maps winners back to original client indices. This segmentation allows each block to be optimized independently, reducing overall circuit complexity while maintaining fairness through the random permutation mechanism.

Inventive Principle:
Principle #1Segmentation

2Reliability

If known random arbitration schemes are used, then randomness is introduced, but the system fails to maintain fairness and prevent starvation

Engineering Contradiction:
Improvefairness maintenanceVSAvoidarbitration efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary random permutation of the request vector before arbitration. By pre-shuffling the requests through a permutation circuit controlled by random bits, the system ensures that no client consistently receives unfair treatment or experiences starvation. This preliminary randomization maintains fairness while the subsequent arbitration step efficiently selects winners from the permuted vector.

Inventive Principle:
Principle #10Preliminary action

3Loss of energy

If circuit size is reduced for scalability, then power consumption decreases, but arbitration functionality must be maintained

Engineering Contradiction:
Improvepower consumptionVSAvoidarbitration correctness
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The permutation circuit uses a compact representation where random bits control the permutation pattern rather than implementing all possible permutations. The inverse permutation circuit uses the same random bits to reconstruct the original ordering. This copying approach with shared random control bits significantly reduces circuit size and power consumption while ensuring arbitration correctness through the mathematical property that applying a permutation and then its inverse returns the original state.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10592240B1Scalable random arbiter
Publication Date: 2020.03.17 MELLANOX TECHNOLOGIES LTD(IL)
  • US10592240B1 patent drawing
  • US10592240B1 patent drawing
  • US10592240B1 patent drawing

AI summary

An electronic apparatus includes a permutation circuit and an arbitration circuit. The permutation circuit is configured to apply to an input vector a permutation selected from a plurality of predefined permutations in response to a control word. The arbitration circuit is configured to receive a vector of requests for a resource, to instruct the permutation circuit to apply a randomly-selected permutation to the vector of requests, by configuring the permutation circuit with a corresponding randomly-selected control word so as to produce a permuted vector, to select an element of the permuted vector, to apply to the permuted vector an inverse of the randomly-selected permutation so as to produce an inversely-permuted vector, to identify an element of the inversely-permuted vector to which the selected element of the permuted vector is mapped, and to assign the resource to a client corresponding to the identified element of the inversely-permuted vector.