Loop Iteration Prediction via Pseudo Branch Instructions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In CISC-type DSPs, the combination of loop support and branch prediction mechanisms interferes with optimal instruction fetching, leading to potential cycle penalties and complex coordination issues.

Innovation Solution

A processor with an instruction fetch unit, an instruction execution unit, a branch prediction unit, and a loop control unit that uses pseudo branch instructions to coordinate loop and branch prediction operations, allowing for sequential instruction fetching and execution without requiring complex coordination between the two mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If both loop support mechanism and branch prediction mechanism are implemented, then processing efficiency is improved, but device complexity increases and coordination becomes complicated

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmechanism coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the loop support mechanism and branch prediction mechanism by having the branch prediction unit handle loop branch predictions. The loop control unit provides loop information to the branch prediction unit, which then uses this information to predict loop branch destinations, eliminating the need for separate loop prediction logic and reducing coordination complexity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The branch prediction unit is designed to serve multiple functions: it predicts both regular branch instructions and loop branch instructions. By making the branch prediction unit universal, the patent avoids the complexity of having separate prediction mechanisms while maintaining high processing efficiency for both branch and loop constructs.

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

2Productivity

If loop support mechanism interferes with instruction fetch, then loop execution is optimized, but optimal advanced instruction fetching cannot be achieved when competing with branch prediction mechanism

Engineering Contradiction:
Improveloop execution speedVSAvoidinstruction fetch delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The loop control unit provides feedback to the branch prediction unit about loop information (such as loop destination addresses and loop status). This feedback enables the branch prediction unit to make accurate predictions about loop branches, allowing the instruction fetch unit to fetch instructions from the correct location without delay, thus maintaining both loop optimization and advanced fetching capability.

Inventive Principle:
Principle #23Feedback

3Productivity

If complex coordination mechanism is implemented between loop support and branch prediction, then optimal instruction fetching is achieved, but device complexity increases

Engineering Contradiction:
Improveinstruction fetching efficiencyVSAvoidcoordination mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent eliminates complex coordination mechanisms by merging the loop support and branch prediction functions. The branch prediction unit directly uses loop information from the loop control unit to make predictions, creating a unified system that achieves optimal instruction fetching without requiring additional coordination logic.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7886134B2Loop iteration prediction by supplying pseudo branch instruction for execution at first iteration and storing history information in branch prediction unit
Publication Date: 2011.02.08 TEXAS INSTRUMENTS INC
  • US7886134B2 patent drawing
  • US7886134B2 patent drawing
  • US7886134B2 patent drawing

AI summary

This invention combines a loop support mechanism and a branch prediction mechanism. After an instruction execution unit executes an end block instruction of a block repeat, the loop control unit branches to the first instruction in the loop and sends a pseudo branch instruction to the instruction execution unit. The instruction execution unit acts as if the last instruction in the block is an instruction for branching to the start address of the block. This is stored in the branch prediction unit and branch prediction is performed thereafter.