Instruction Rearrangement for Pipeline Dependency Delays

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor pipelining, instructions with dependencies can lead to reduced execution efficiency due to suspended execution until previous instructions yield results, resulting in longer execution times.

Innovation Solution

A program instruction rearrangement method that calculates dependency depth and rearranges instructions based on dependencies, removing redundant move instructions and optimizing execution order to reduce dependency delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are executed in original program order through pipelining, then instruction execution can be parallelized, but execution is suspended when dependency conflicts occur, reducing execution efficiency

Engineering Contradiction:
Improveinstruction execution efficiencyVSAvoidexecution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of instruction dependencies before execution, calculating dependency depths and identifying instructions that can be safely reordered. This preliminary preparation enables the pipeline to execute instructions in an optimized order without encountering dependency conflicts during runtime, thereby improving execution efficiency and reducing suspension delays

Inventive Principle:
Principle #10Preliminary action

2Reliability

If instructions with register dependencies are executed sequentially in pipeline, then data correctness is maintained, but the pipeline stalls waiting for previous instructions to complete, increasing total execution time

Engineering Contradiction:
Improvedata correctnessVSAvoidpipeline execution throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent dynamically determines the execution order of instructions based on calculated dependency depths. Instructions are assigned dynamic execution slots that reflect their actual dependency relationships rather than following static program order. This dynamic reordering maintains data correctness while maximizing pipeline throughput by preventing stalls

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If redundant move instructions are present in the program, then program logic is explicit, but execution time increases and pipeline efficiency decreases

Engineering Contradiction:
Improveprogram clarityVSAvoidinstruction execution time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent identifies and removes redundant move instructions from the program before execution. By analyzing register usage patterns and dependency relationships, the system discards unnecessary intermediate move operations that do not contribute to the final computation, thereby reducing execution time and improving pipeline efficiency while preserving program functionality

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8082421B2Program instruction rearrangement methods in computer
Publication Date: 2011.12.20 VIA TECH INC
  • US8082421B2 patent drawing
  • US8082421B2 patent drawing
  • US8082421B2 patent drawing

AI summary

A program instruction rearrangement method calculates the dependency depth of each instruction of a program based on dependency between instructions, based on register access order, and rearranging instructions based on the dependency depth. Additionally, the dependency between instructions can be utilized to locate and remove redundant instructions.