Processor Pipeline Rollback Handling via Thread Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional pipelined processors face inefficiencies during speculative execution of instructions, particularly when conditional branch predictions are incorrect, as they idle pipeline stages until instructions for the other branch side are processed, limiting overall processing capacity.

Innovation Solution

A system and method that allows the processing pipeline to continue executing instructions from different thread groups during rollback conditions, where the scheduler issues instructions assuming resolved dependencies and available resources, and only stops issuing for the affected thread group, allowing other thread groups to proceed, and reissues instructions once the rollback condition is resolved.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If conventional pipelined processors perform speculative execution by predicting conditional branch outcomes, then instruction execution can proceed ahead of dependency resolution, but when prediction is incorrect, pipeline stages must be idle until rollback completes

Engineering Contradiction:
Improveinstruction execution speedVSAvoidpipeline throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The processor divides instructions into different thread groups that can be independently managed. When a rollback condition is detected for one thread group, only that specific thread group's pipeline stages are stalled, while other thread groups continue executing without interruption. This segmentation isolates the impact of rollback to minimal pipeline segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system maintains continuous useful action by allowing multiple thread groups to execute in parallel. When one thread group encounters a rollback condition, the pipeline continues processing instructions from other thread groups, ensuring that pipeline stages remain productive and do not idle during the rollback process.

Inventive Principle:
Principle #20Continuity of useful action

2Reliability

If the processor stops issuing instructions for a thread group when a rollback condition is detected, then correct execution can be ensured, but other pipeline resources remain underutilized during the rollback period

Engineering Contradiction:
Improveexecution correctnessVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processor segments thread groups into independent execution units. When a rollback condition is detected for one thread group, the system selectively stops issuing instructions only for that affected thread group while continuing to issue and execute instructions for other thread groups, maintaining both execution correctness and resource utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically changes the execution state parameter for different thread groups based on rollback conditions. Affected thread groups transition to a stalled state while other thread groups remain in the active execution state, allowing the system to maintain reliability for the affected group while preserving productivity through other groups.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If pipeline stages are idle during rollback, then incorrect speculative instructions are prevented from completing, but overall processing capacity is reduced

Engineering Contradiction:
Improveinstruction accuracyVSAvoidprocessing capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processor segments the pipeline into multiple independent thread group processing streams. When a rollback condition occurs for one thread group, only the pipeline stages dedicated to that thread group are stalled, while pipeline stages processing other thread groups continue operating, thereby maintaining processing capacity while ensuring instruction accuracy for the affected thread group.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pipeline stages are designed to handle multiple thread groups simultaneously, making them multi-functional. This universality allows the same pipeline infrastructure to service multiple thread groups, so when one thread group requires rollback, the pipeline can redirect to other thread groups, maintaining both instruction accuracy and processing capacity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9830158B2Speculative execution and rollback
Publication Date: 2017.11.28 NVIDIA CORP
  • US9830158B2 patent drawing
  • US9830158B2 patent drawing
  • US9830158B2 patent drawing

AI summary

One embodiment of the present invention sets forth a technique for speculatively issuing instructions to allow a processing pipeline to continue to process some instructions during rollback of other instructions. A scheduler circuit issues instructions for execution assuming that, several cycles later, when the instructions reach multithreaded execution units, that dependencies between the instructions will be resolved, resources will be available, operand data will be available, and other conditions will not prevent execution of the instructions. When a rollback condition exists at the point of execution for an instruction for a particular thread group, the instruction is not dispatched to the multithreaded execution units. However, other instructions issued by the scheduler circuit for execution by different thread groups, and for which a rollback condition does not exist, are executed by the multithreaded execution units. The instruction incurring the rollback condition is reissued after the rollback condition no longer exists.