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
Engineering 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
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.
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.
2Productivity
If multiple branch instructions are executed simultaneously, then execution throughput is improved, but power consumption increases due to additional update ports
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.
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.
3Reliability
If dedicated update ports are provided for each control flow execution circuit, then prediction accuracy is maintained, but space consumption increases
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.
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.
Data Source
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.


