Control Flow Prediction Update Circuit for Branch Instruction Handling

Solution Overview

Problem

Executing multiple branch instructions simultaneously in data processing requires updating branch predictors, which typically necessitates additional space and power due to the need for dedicated update ports, especially since most branch instructions have high confidence predictions and rarely require updates.

Innovation Solution

A data processing apparatus and method that simultaneously execute control flow instructions while updating at most one prediction per cycle, utilizing high confidence control flow execution circuits to execute instructions with high confidence predictions and reserving resources for low confidence instructions, thereby reducing the need for dual update ports in the prediction circuitry.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple branch instructions are executed simultaneously, then Instruction Level Parallelism is achieved, but additional update ports are required increasing space and power consumption

Engineering Contradiction:
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the update operation from being mandatory for every branch instruction and applies it selectively only when prediction accuracy deteriorates. By monitoring prediction accuracy and triggering updates only when needed, the system maintains ILP benefits while avoiding unnecessary update port usage, thus reducing space and power consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter of update frequency from fixed (every execution) to variable (based on prediction accuracy monitoring). This allows the system to adapt update operations dynamically, executing updates only when prediction accuracy falls below a threshold, thereby reducing the effective number of update operations and associated resource usage.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If multiple branch instructions are executed simultaneously, then execution throughput is improved, but power consumption increases due to additional update ports

Engineering Contradiction:
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the update operation from being a mandatory concurrent operation and makes it conditional based on prediction accuracy. This selective approach maintains high execution throughput while avoiding the power consumption overhead of always-active multiple update ports.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of performing full update operations for every simultaneously executed branch instruction, the patent applies partial action by monitoring prediction accuracy and performing updates only when necessary. This reduces the total number of update operations and associated power consumption while maintaining adequate prediction performance.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If dedicated update ports are provided for each control flow execution circuit, then prediction accuracy is maintained, but space consumption increases

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

The patent extracts the update operation from being a structural requirement for each execution circuit and makes it a conditional operation based on prediction accuracy monitoring. This allows shared update resources to suffice, reducing the space required while maintaining prediction accuracy through selective updates.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a shared update port that serves multiple control flow execution circuits, making the update resource universal rather than dedicated. The shared port is activated selectively based on prediction accuracy needs, reducing total space requirements while maintaining prediction accuracy across multiple execution circuits.

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

Data Source

PatentUS10817299B2Handling multiple control flow instructions
Publication Date: 2020.10.27
  • US10817299B2 patent drawing
  • US10817299B2 patent drawing
  • US10817299B2 patent drawing

AI summary

A data processing apparatus is provided that includes a plurality of control flow execution circuits to simultaneously execute a first control flow instruction having a first type and a second control flow instruction having a second type from a plurality of instructions. A control flow prediction update circuit updates at most one of: a prediction of the first control flow instruction based on a result of the first control flow instruction, and a prediction of the second control flow instruction based on a result of the second control flow instruction.