Pre-emptive Command Stream Scheduling for Consumer Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional command stream scheduling leads to processing inefficiencies due to mismatched time slice allocations, resulting in idle consumers while others are overwhelmed, limiting concurrency and throughput.

Innovation Solution

A pre-emptive scheduling mechanism is implemented by parsing and expanding a single command stream, inserting yield commands to allow consumers to yield and switch processing, enabling multiple consumers to process commands concurrently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a time slice allocation scheme is used for command stream scheduling, then fairness among consumers is improved, but processing concurrency is limited due to idle consumers while others are overwhelmed

Engineering Contradiction:
ImprovefairnessVSAvoidprocessing concurrency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements dynamic scheduling where consumers can be pre-empted mid-time-slice based on workload conditions. The scheduler monitors consumer workload and dynamically switches between time-slice-based and workload-based scheduling, allowing the system to adapt between fairness-oriented and throughput-oriented modes depending on real-time conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the scheduling parameter from fixed time-slice duration to variable workload-based pre-emption points. By inserting yield commands at strategic points in the command stream based on consumer workload state, the system adjusts scheduling behavior to balance fairness and concurrency.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If a consumer receives a small number of commands that initiate many cycles of processing, then the consumer cannot accept additional commands during processing cycles, but the scheduler must wait for the consumer to begin accepting commands or for the time slice to expire, resulting in idle time

Engineering Contradiction:
Improveprocessing completenessVSAvoidscheduler wait time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of the command stream to identify workload patterns and pre-emption points before execution. By inserting yield commands in advance at optimal locations, the scheduler prepares the system to switch consumers proactively rather than reactively, reducing idle wait time while ensuring processing completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The scheduler implements feedback mechanisms by monitoring consumer processing state and workload accumulation. When a consumer accumulates sufficient workload or enters a processing state where it cannot accept new commands, the scheduler receives feedback and triggers a pre-emptive switch to another consumer, optimizing the use of scheduler wait time.

Inventive Principle:
Principle #23Feedback

3Productivity

If a consumer receives several commands during a time slice but does not receive a command which initiates processing, then the consumer remains idle until a subsequent time slice, resulting in lost processing opportunities

Engineering Contradiction:
Improvecommand processing rateVSAvoidconsumer idle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system ensures continuity of useful action by preventing consumer idle time through intelligent pre-emption. When a consumer is detected to be idle despite receiving commands, the scheduler maintains continuous productive work by switching to another active consumer, ensuring that processing capacity is continuously utilized across the system.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS7577762B1Cooperative scheduling for multiple consumers
Publication Date: 2009.08.18 NVIDIA CORP
  • US7577762B1 patent drawing
  • US7577762B1 patent drawing
  • US7577762B1 patent drawing

AI summary

A system and method schedules command streams for processing by a variety of consumers. A single command stream is parsed and commands included in the command stream are output to one of the variety of consumers at a time. A pre-emptive scheduling mechanism is used so that a first consumer may yield to a second consumer when the first consumer has received a sufficient amount of commands. The pre-emptive scheduling enables several of the consumers to process commands concurrently. The pre-emptive scheduling mechanism may be implemented by a device driver inserting yield commands into the command stream or by a unit parsing the command stream.