Chaining Bit Decoder for Processor Pipeline Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures require complex hardware for inter-instruction dependency checking, which increases power consumption and latency, limiting the potential for instruction-level parallelism and performance optimizations.

Innovation Solution

The method involves encoding dependency information and parallelism information using chaining bits across a sequence of instructions, allowing the processor to generate pipeline control signals without the need for complex hardware interlocks, enabling efficient execution and reduced latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If complex hardware interlocks are used for inter-instruction dependency checking, then instruction dependency detection accuracy is improved, but device complexity and power consumption increase

Engineering Contradiction:
Improveinstruction dependency detection accuracyVSAvoidhardware complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts the dependency checking function from hardware interlocks and relocates it to software-based chaining bits embedded in instructions. The chaining bits explicitly encode dependency relationships, allowing the processor to determine parallelism and generate pipeline control signals without complex hardware dependency checking, thereby reducing hardware complexity while maintaining accurate dependency detection

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces the mechanical hardware interlock system with a software-based solution using chaining bits in the instruction stream. Instead of using physical hardware to detect and resolve dependencies, the system uses encoded bits that provide dependency information directly to the processor, which then generates appropriate pipeline control signals, substituting a mechanical system with an information-based system

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Productivity

If dynamic instruction scheduling is used to exploit instruction level parallelism, then processor productivity is improved, but device complexity increases

Engineering Contradiction:
Improveinstruction level parallelismVSAvoidmicro-architectural complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by having the compiler or programmer encode dependency and parallelism information in chaining bits before execution. This pre-encoded information guides the processor's instruction scheduling, allowing dynamic instruction scheduling to exploit instruction level parallelism without requiring complex runtime hardware analysis, as the dependency relationships are already established in the instruction stream

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The chaining bits serve as an intermediary that carries dependency and parallelism information from the compiler to the processor. This intermediary provides the necessary information for dynamic instruction scheduling to function effectively without requiring complex hardware interlocks, bridging the gap between static compilation and dynamic execution

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If static instruction scheduling is used in embedded processors, then device complexity is reduced, but instruction level parallelism is limited

Engineering Contradiction:
Improvehardware complexityVSAvoidinstruction level parallelism
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces dynamics by enabling the processor to adaptively schedule instructions based on chaining bit information encoded in the instruction stream. While the hardware remains simple like static issue processors, the processor can dynamically determine parallelism and adjust pipeline control signals based on the encoded dependency information, allowing embedded processors to achieve dynamic scheduling capabilities without increasing hardware complexity

Inventive Principle:
Principle #15Dynamics

4Reliability

If pipeline stalling is used to resolve data dependencies, then instruction correctness is maintained, but execution time increases

Engineering Contradiction:
Improveinstruction execution correctnessVSAvoidpipeline bubbles
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-encoding dependency relationships in chaining bits, allowing the processor to proactively manage pipeline execution. Instead of passively stalling when dependencies are detected, the processor can use the chaining bit information to optimize pipeline control signals and reduce unnecessary stalling, maintaining correctness while minimizing execution time loss

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3103302B1Method and apparatus for enabling a processor to generate pipeline control signals
Publication Date: 2019.08.07 OPTIMUM SEMICON TECH
  • EP3103302B1 patent drawingFigure 1
  • EP3103302B1 patent drawingFigure 2
  • EP3103302B1 patent drawingFigure 3

AI summary

A chaining bit decoder of a computer processor receives an instruction stream. The chaining bit decoder selects a group of instructions from the instruction stream. The chaining bit decoder extracts a designated bit from each instruction of the instruction stream to produce a sequence of chaining bits. The chaining bit decoder decodes the sequence of chaining bits. The chaining bit decoder identifies zero or more instruction stream dependencies among the selected group of instructions in view of the decoded sequence of chaining bits. The chaining bit decoder outputs control signals to cause one or more pipelines stages of the processor to execute the selected group of instructions in view of the identified zero or more instruction stream dependencies among the group sequence of instructions.