Total Order Queue for Resource Request Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In parallel processing systems, the existing methods for managing common resource requests lead to issues like priority inversion and pipeline latency, where newer requests may preempt older ones, causing older requests to be blocked from completing their operations.

Innovation Solution

A computer-implemented method that schedules common resource access requests by delaying servicing of older requests until the resource becomes available, ensuring that older requests are prioritized over newer ones, and using a total order queue (TOQ) to manage and allocate resources fairly.

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 blocked indefinitely

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

Solution Approach 1:

The patent reserves common resources for older pending requests in advance, before they are actually needed. When a request enters the pending state, the system proactively reserves the required common resources, ensuring they will be available when the request is serviced. This prevents the scenario where newer requests consume resources that older requests need, thereby avoiding priority inversion while maintaining high resource utilization through efficient reservation management.

Inventive Principle:
Principle #10Preliminary action

2Speed

If common resources are allocated to pending requests immediately when available, then resource allocation speed increases, but pipeline latency causes newer requests to consume resources before older requests can complete

Engineering Contradiction:
Improveresource allocation speedVSAvoidrequest completion time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent introduces a reservation mechanism as an intermediary between resource availability and actual resource allocation. Instead of directly allocating resources to the first waiting request, the system uses a reservation layer that tracks which older requests are entitled to which resources. This intermediary ensures that even though allocation happens quickly, the correct (older) requests receive resources in the proper order, preventing pipeline latency from causing priority inversion.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If a request waiting for resource B is scheduled when resource A becomes available, then resource A utilization improves, but pipeline latency prevents the request from accessing resource B, causing it to be blocked

Engineering Contradiction:
Improveresource A utilizationVSAvoidrequest execution flow
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent applies preliminary action by reserving both resource A and resource B for the waiting request in advance. When a request is pending for resource B, the system proactively reserves resource B alongside resource A, creating a complete resource reservation package. This ensures that when the request is eventually serviced, both resources are guaranteed to be available, preventing the request from being blocked mid-execution and maintaining smooth operation flow while still utilizing resource A efficiently.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10095548B2Mechanism for waking common resource requests within a resource management subsystem
Publication Date: 2018.10.09 NVIDIA CORP
  • US10095548B2 patent drawing
  • US10095548B2 patent drawing
  • US10095548B2 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.