Branch-Future Instruction Decoding Circuitry for Zero-Overhead Branching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Branch instructions in data processing systems cause delays, reducing performance due to the need for additional processing steps and potential overhead.

Innovation Solution

Incorporation of branch-future instruction decoding circuitry that includes programmable parameters for a branch target address and branch point data, allowing the processing circuitry to prepare for branching in advance, thereby reducing or eliminating delays when the branch point is reached.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional branch instructions are used, then the branch target address can be specified, but processing delays occur due to additional processing steps and overhead

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidbranch delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by decoding the branch target address and preparing branch control signals in advance, before the actual branch point is reached. The branch-future instruction decoding circuitry extracts and stores the branch target address and control signals during the decode stage of the current instruction, so that when the branch point is reached, the processing circuitry can immediately execute the branch without delay. This eliminates the traditional delay associated with branch instructions by performing the preparation work ahead of time.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If branch instructions are executed sequentially, then program flow control is maintained, but processing steps and overhead increase

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprocessing steps
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the branch instruction decoding and control signal generation into a unified process that occurs during the normal instruction decode stage. The branch-future instruction decoding circuitry combines the extraction of branch target address, generation of branch control signals, and preparation of execution parameters into a single integrated operation. This merging eliminates the need for separate branch processing steps and reduces the overall complexity of handling branches in the processing pipeline.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The branch-future instruction decoding circuitry performs multiple functions simultaneously: it decodes the branch target address, generates branch control signals, determines branch timing, and prepares execution parameters. This multi-functional approach consolidates what would traditionally require separate circuitry and processing steps into a single universal decoding mechanism, reducing device complexity while maintaining program flow control.

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

3Loss of time

If branch preparation is done in advance, then branch delays are reduced, but instruction decoding complexity increases

Engineering Contradiction:
Improvebranch delayVSAvoidinstruction decoding circuitry
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent segments the instruction decoding process into functional modules: the branch-future instruction decoding circuitry handles branch-specific tasks (extracting target address, generating control signals), while the general instruction decoder handles standard decoding operations. This segmentation allows the branch preparation functionality to be isolated and optimized without complicating the overall decoding architecture. The branch control circuitry is further segmented into distinct units for address extraction, control signal generation, and timing management, making the complexity manageable and modular.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10768938B2Branch instruction
Publication Date: 2020.09.08 ARM LTD
  • US10768938B2 patent drawing
  • US10768938B2 patent drawing
  • US10768938B2 patent drawing

AI summary

A data processing system provides a branch forward instruction (BF) which has programmable parameters specifying a branch target address to be branched to and a branch point identifying a program instruction following the branch forward instruction which, when reached, is followed by a branch to the branch target address.