Graphics Engine Reset Recovery via Command Streamer Idle State
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In graphics processing architectures, resetting one execution context can result in the loss of work from another context sharing the same execution units, leading to inefficiencies and potential system instability.
Innovation Solution
The implementation of a method that considers the type of reset event and triggers an idle state in dependent command streamers, allowing for a controlled reset of one command streamer without affecting shared resources, using data structures like context descriptors and work queues to manage and invalidate contexts appropriately.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a reset is performed on one execution context sharing execution units, then the reset operation can be completed, but work in other contexts sharing the same execution units is lost
Solution Approach 1:
The patent segments the execution unit resources by creating context-specific execution unit assignments. When a reset is needed for one context, only the execution units assigned to that specific context are reset, while execution units assigned to other contexts remain unaffected. This segmentation isolates the reset operation to the minimal necessary scope, preventing work loss in other contexts.
Solution Approach 2:
The patent performs preliminary actions by saving the state of execution units before resetting a context. The system captures and preserves the state of execution units that may be affected by the reset, allowing for potential recovery or validation that other contexts' work is protected. This preliminary state capture ensures that reset operations don't inadvertently cause work loss.
2Productivity
If execution units are shared among multiple contexts, then resource utilization is improved, but system stability deteriorates due to reset-induced work loss
Solution Approach 1:
The patent implements segmentation by assigning specific execution units to specific contexts while allowing sharing under controlled conditions. The system maintains context descriptors that track which execution units are assigned to which contexts, enabling selective resetting that preserves system stability while maintaining resource utilization benefits of sharing.
Solution Approach 2:
The patent employs feedback mechanisms through context descriptors that continuously track the state and assignments of execution units across contexts. When a reset is initiated, the system queries these descriptors to determine which execution units are safely resettable without affecting other contexts, providing real-time feedback that maintains system stability during resource sharing operations.
3Loss of time
If a reset operation is performed without considering context dependencies, then the reset is simple and fast, but work loss occurs in dependent contexts
Solution Approach 1:
The patent performs preliminary analysis of context dependencies before executing the reset operation. By querying context descriptors to identify which execution units are assigned to which contexts and checking for dependencies, the system determines the safe reset scope in advance. This preliminary action prevents work loss while minimizing reset time by avoiding unnecessary complexity.
Solution Approach 2:
The patent implements dynamic context descriptor structures that can be quickly queried to determine execution unit assignments and context dependencies. This dynamic information allows the reset operation to adapt to the current system state, identifying the minimal necessary reset scope rapidly without requiring complex static analysis, thus reducing reset time while preventing work loss.
Data Source
AI summary
Methods, systems and apparatuses may provide for technology that triggers an idle state in a first command streamer in response to a request to reset a second command streamer that shares graphics hardware with the first command streamer. The technology may also determine an event type associated with the request and conduct the request based on the event type.


