Total Order Queue for Streaming Multiprocessor Resource Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel processing systems, the existing methods for managing common resource access lead to priority inversions and inefficiencies, where newer requests are serviced before older pending requests, causing older requests to be repeatedly blocked and unable to make forward progress.

Innovation Solution

A computer-implemented method that schedules common resource access requests by delaying newer requests when the resource is not available, ensuring that older requests are serviced first once the resource becomes available, thereby avoiding priority inversions and ensuring older requests can make progress.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If newer requests are allocated common resources before older pending requests, then resource utilization appears improved, but priority inversion occurs and older requests are repeatedly blocked

Engineering Contradiction:
Improveresource utilizationVSAvoidrequest completion guarantee
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by allocating the common resource to the older pending request in advance, before the newer request can consume it. The scheduler identifies that resource A is available and proactively allocates it to the older request that is waiting, preventing the priority inversion from occurring in the first place.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The scheduler continuously monitors the state of common resources and the queue of pending requests, using this feedback to make intelligent allocation decisions. When resource A becomes available, the scheduler detects this change and responds by allocating it to the appropriate older request, rather than allowing newer requests to consume it.

Inventive Principle:
Principle #23Feedback

2Speed

If common resource is allocated to available requests immediately, then processing speed increases, but older pending requests cannot make forward progress

Engineering Contradiction:
Improverequest processing speedVSAvoidwaiting time for older requests
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system performs preliminary allocation of common resources to older pending requests when those resources become available, before newer requests can consume them. This ensures older requests make forward progress without excessive waiting time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of the conventional approach where newer requests are serviced first, the system inverts the priority order by servicing older pending requests first when resources are available, thereby eliminating priority inversion and reducing waiting time for older requests.

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If pending requests are placed in a queue awaiting resource availability, then resource allocation appears efficient, but pipeline latency causes newer requests to consume resources before pending requests can complete

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidrequest completion reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The scheduler performs preliminary allocation of the common resource to the older pending request as soon as the resource becomes available, rather than waiting for the request to be at the front of the queue. This preliminary action prevents pipeline latency from causing newer requests to consume the resource first.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses feedback from resource availability status to trigger immediate allocation to older pending requests, rather than following a strict FIFO queue approach that would allow pipeline latency to cause priority inversion.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9755994B2Mechanism for tracking age of common resource requests within a resource management subsystem
Publication Date: 2017.09.05 NVIDIA CORP
  • US9755994B2 patent drawing
  • US9755994B2 patent drawing
  • US9755994B2 patent drawing

AI summary

One embodiment of the present disclosure sets forth an effective way to maintain fairness and order in the scheduling of common resource access requests related to replay operations. Specifically, a streaming multiprocessor (SM) includes a total order queue (TOQ) configured to schedule the access requests over one or more execution cycles. Access requests are allowed to make forward progress when needed common resources have been allocated to the request. Where multiple access requests require the same common resource, priority is given to the older access request. Access requests may be placed in a sleep state pending availability of certain common resources. Deadlock may be avoided by allowing an older access request to steal resources from a younger resource request. One advantage of the disclosed technique is that older common resource access requests are not repeatedly blocked from making forward progress by newer access requests.