Pre-emptive Command Stream Scheduling for Consumer Concurrency
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


