Instruction Pipeline Operand Forwarding for RAW Dependency Removal

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional CPU pipelines face inefficiencies due to RAW (Read After Write) data correlations in superscalar processors, particularly in RISC-V instruction sets, leading to idle resources and reduced performance.

Innovation Solution

A method and apparatus for adjusting the instruction pipeline by replacing the object source operand in an instruction with the source operand of a preceding move-type instruction if their target operands are identical, thereby eliminating RAW data correlations and allowing parallel execution of instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a conventional CPU pipeline is used in superscalar processors, then instruction execution can be parallelized, but RAW data correlations cause idle resources and reduced performance

Engineering Contradiction:
Improveinstruction execution throughputVSAvoidresource idle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by detecting RAW data correlations between instructions before execution and performing operand forwarding in advance. The forwarding mechanism is prepared and activated proactively, allowing the second instruction to use the first instruction's source operand directly without waiting for the target operand write-back, thus eliminating idle time while maintaining correct execution order

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary forwarding mechanism that acts as a mediator between the first instruction's source operand and the second instruction's input. This forwarding path allows data to be transferred directly through the pipeline without going through the normal target operand storage and retrieval process, resolving the RAW correlation bottleneck while preserving data integrity

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If instructions are executed sequentially to maintain data correctness, then RAW data correlations are handled safely, but parallel execution capability is underutilized

Engineering Contradiction:
Improvedata execution correctnessVSAvoidinstruction parallelism
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The forwarding mechanism serves as an intermediary that enables parallel execution while maintaining data correctness. It selectively activates forwarding paths only when RAW correlations are detected, allowing parallel execution of instructions that would otherwise be sequentially dependent, thus improving productivity without sacrificing reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies local quality by implementing forwarding selectively only where RAW data correlations exist between specific instruction pairs, rather than forcing sequential execution globally or enabling parallel execution universally. This localized approach maintains correctness where needed while maximizing parallelism where possible

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12517757B2Method and apparatus for adjusting instruction pipeline, memory and storage medium
Publication Date: 2026.01.06 BEIJING ESWIN COMPUTING TECH CO LTD
  • US12517757B2 patent drawing
  • US12517757B2 patent drawing
  • US12517757B2 patent drawing

AI summary

A method and an apparatus for adjusting an instruction pipeline, a memory and a storage medium. The method for adjusting the instruction pipeline includes: receiving a move-type instruction, wherein the move-type instruction includes a target operand and a first source operand, and indicates to move a data of a source address indicated by the first source operand to a target address indicated by the target operand; receiving an object instruction located after the move-type instruction in an instruction sequence, wherein the object instruction includes an object source operand, indicating that an object operation is performed with a source address indicated by the object source operand; and replacing the object source operand in the object instruction with the first source operand of the move-type instruction to obtain a modified instruction, in response to the target operand of the move-type instruction being identify to the object source operand of the object instruction.