Processor Pipeline Restart Latency Reduction via Parallel Fetching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor technologies face significant latency issues during pipeline restarts due to cache misses, leading to inefficient execution and increased delays, as they often stall or require re-fetching instructions sequentially, which can be time-consuming in modern processors with complex pipelines.

Innovation Solution

Implementing a processor architecture that includes multiple instruction fetch units to alternate between fetching and re-fetching instructions, allowing for parallel execution and re-execution of instructions during a scouting phase, thereby reducing the latency of restarting the pipeline by initiating re-fetching before the scouting phase ends.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processor stalls to wait for cache miss results, then execution correctness is maintained, but pipeline productivity is significantly reduced

Engineering Contradiction:
Improveexecution correctnessVSAvoidpipeline productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processor performs preliminary actions by executing scouting threads that prefetch data and calculate memory addresses in advance during the scouting phase. This preliminary execution of address calculation and cache request issuance before the actual data is needed reduces the stall time when cache misses occur, as the system is already prepared with prefetched data and calculated addresses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The processor maintains continuity of useful action by implementing dynamic multithreading that allows the pipeline to continue executing instructions from other threads while waiting for cache misses to be resolved. The scouting phase enables continuous address calculation and cache request issuance without stalling, ensuring the pipeline remains productive throughout the data retrieval process.

Inventive Principle:
Principle #20Continuity of useful action

2Productivity

If the processor executes instructions speculatively or performs scouting, then pipeline productivity is improved, but device complexity increases

Engineering Contradiction:
Improvepipeline productivityVSAvoidprocessor architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The processor architecture is segmented into distinct phases (scouting phase and commit phase) and thread types (scouting threads and main threads). This segmentation allows the complex scouting operations to be isolated in a dedicated phase without affecting the simplicity of normal instruction execution in the commit phase, making the overall system more manageable despite the added complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Scouting threads act as intermediaries between the main thread and the memory hierarchy. These intermediary threads perform address calculation and cache request issuance without committing results, mediating the complex memory access operations and shielding the main execution path from the complexity of handling cache misses and prefetching.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If the processor uses a single instruction fetch unit, then device complexity is reduced, but pipeline restart latency increases

Engineering Contradiction:
Improvefetch unit complexityVSAvoidpipeline restart latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The processor merges the functionality of multiple instruction fetch units by implementing a single fetch unit that can operate in different modes (fetching main thread instructions or re-fetching scouting thread instructions). This merging approach provides the benefits of multiple fetch units (reduced restart latency) while avoiding the full complexity of completely separate fetch units, as the single unit dynamically switches between different fetching tasks.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9086889B2Reducing pipeline restart penalty
Publication Date: 2015.07.21 ORACLE INT CORP
  • US9086889B2 patent drawing
  • US9086889B2 patent drawing
  • US9086889B2 patent drawing

AI summary

Techniques are disclosed relating to reducing the latency of restarting a pipeline in a processor that implements scouting. In one embodiment, the processor may reduce pipeline restart latency using two instruction fetch units that are configured to fetch and re-fetch instructions in parallel with one another. In some embodiments, the processor may reduce pipeline restart latency by initiating re-fetching instructions in response to determining that a commit operation is to be attempted with respect to one or more deferred instructions. In other embodiments, the processor may reduce pipeline restart latency by initiating re-fetching instructions in response to receiving an indication that a request for a set of data has been received by a cache, where the indication is sent by the cache before determining whether the data is present in the cache or not.