Branch Instruction Sequencing With Predecoded Target Packets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programmable circuitry struggles with inefficiencies in executing branch instructions, leading to cycles where no operations are performed due to the pipeline's inability to fetch and decode instructions at branch targets.

Innovation Solution

The proposed solution involves compiler circuitry that reorders the execution of machine instructions to preemptively execute branch instructions, using multiple instruction buffers to continue executing other instructions while fetching and decoding at branch locations, thereby reducing cycles of inactivity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the pipeline executes instructions sequentially in order, then instruction decoding is simple and straightforward, but idle cycles occur when branch targets are not yet fetched or decoded

Engineering Contradiction:
Improveinstruction execution throughputVSAvoididle cycles
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by fetching and decoding instructions at branch target locations before the branch instruction is actually executed. The pipeline speculatively fetches instructions from potential branch targets in advance, so that when the branch is taken, the target instructions are already ready in the decode stage, eliminating idle cycles and maintaining continuous instruction flow.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple instruction buffers are used to continue executing instructions during branch operations, then processing efficiency increases, but device complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcircuitry complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the instruction stream into multiple parallel paths by implementing separate fetch and decode stages for different instruction packets. Multiple instruction buffers are introduced to hold different packets independently, allowing the pipeline to fetch and decode instructions from multiple locations simultaneously, thereby improving throughput despite increased structural complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a temporal dimension to instruction processing by introducing instruction packets with associated timing information. Instructions are organized into packets that can be fetched, decoded, and executed in overlapping time periods, allowing the pipeline to operate on multiple instruction packets concurrently rather than strictly sequentially, thus improving efficiency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS20260079707A1Methods and apparatus to sequence branch operations
Publication Date: 2026.03.19 TEXAS INSTRUMENTS INC
  • US20260079707A1 patent drawing
  • US20260079707A1 patent drawing
  • US20260079707A1 patent drawing

AI summary

An example apparatus includes: address generation circuitry configured to generate a first address associated with a first packet, a second address associated with a second packet, and a third address associated with a third packet, wherein: the first packet includes a branch instruction; the branch instruction includes a first field that specifies a branch target, and a second field that is different from the first field; and the third packet includes the branch target of the branch instruction; buffer circuitry configured to receive the first packet, the second packet, and the third packet; decoder circuitry coupled to the buffer circuitry, the decoder circuitry configured to decode the first packet, the second packet, and the third packet; discontinuity controller circuitry coupled to the buffer circuitry and the decoder circuitry and configured to determine whether to cause the address generation circuitry to generate the second address.