Priority Bus Arbiter Dynamic Starvation Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing bus arbiters face challenges in avoiding deadlocks and starvation, particularly when lower priority queues are not given a reasonable opportunity to transmit, leading to circular waiting scenarios and system bottlenecks.

Innovation Solution

A scheduler is implemented that prioritizes data units in low priority queues during starvation conditions and allows retransmission of data units from these queues, with the condition being cleared after a specified number of retransmissions, ensuring higher priority queues continue to process data without deadlock.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If higher priority queues are always served first, then processing speed of critical data units is improved, but lower priority queues experience starvation and deadlocks

Engineering Contradiction:
Improveprocessing speed of critical data unitsVSAvoidsystem reliability due to deadlocks and starvation
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The arbiter dynamically adjusts queue priority based on transmission status. When a higher priority queue has pending transmissions, the lower priority queue is elevated to higher priority to prevent starvation. This dynamic adjustment resolves the contradiction by making the system adaptive rather than static, allowing both speed and reliability to be maintained through conditional priority switching.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback mechanisms where the arbiter monitors transmission status and queue depths. Based on this feedback, the arbiter decides whether to serve higher priority queues first or switch to lower priority queues to prevent starvation. This closed-loop control resolves the contradiction by continuously adjusting arbitration decisions based on system state.

Inventive Principle:
Principle #23Feedback

2Ease of operation

If lower priority queues are frequently served to prevent starvation, then fairness is improved, but processing speed of critical data units deteriorates

Engineering Contradiction:
Improvefairness in queue serviceVSAvoidprocessing speed of critical data units
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The system applies partial action by serving lower priority queues only when necessary (when higher priority queues are empty or transmissions are in progress). This prevents excessive service to lower priority queues that would slow down critical data processing, while still providing enough service to prevent starvation. The arbitration is tuned to provide just enough fairness without sacrificing overall speed.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If retrying is allowed for failed transmissions, then reliability is improved, but deadlocks occur due to circular waiting

Engineering Contradiction:
Improvetransmission reliabilityVSAvoidsystem complexity due to deadlock scenarios
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The arbiter preemptively switches to lower priority queues before deadlocks can occur. When a higher priority queue has pending transmissions, the system proactively elevates lower priority queue priority, ensuring that lower priority queues get service opportunities before circular waiting conditions develop. This preliminary action prevents deadlocks while maintaining retry capability for reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8370552B2Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
Publication Date: 2013.02.05 NVIDIA CORP
  • US8370552B2 patent drawing
  • US8370552B2 patent drawing
  • US8370552B2 patent drawing

AI summary

A scheduler provided according to an aspect of the present invention provides higher priority for data units in a low priority queue upon occurrence of a starvation condition, and to packets in a high priority queue otherwise. The scheduler permits retransmission of a data unit in the lower priority queue when in the starvation condition, but clears the starvation condition when the data unit is retransmitted a pre-specified number of times. As a result, the data units in the higher priority queue would continue to be processed, thereby avoiding a deadlock at least in certain situations.