Branch Prediction Unit Access Control via Sequential Fetch Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processors waste energy by accessing branch prediction functional blocks for non-control transfer instructions, leading to unnecessary power consumption.

Innovation Solution

Implementing a sequential fetch logic that uses records to determine the number of fetch groups without control transfer instructions and prevents access to the branch prediction unit, reducing power consumption by powering down relevant components when not needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the branch prediction functional block is accessed for all instructions to ensure predicted resolutions are available, then the reliability of instruction execution is improved, but the energy consumption increases due to unnecessary accesses for non-control transfer instructions

Engineering Contradiction:
Improveavailability of branch prediction informationVSAvoidpower consumption of branch prediction unit
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by pre-determining whether a fetch group contains control transfer instructions before accessing the branch prediction unit. The processor identifies CTIs in advance and uses this information to conditionally enable or disable branch prediction accesses, avoiding unnecessary energy consumption while ensuring predictions are available when needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamics by making the branch prediction unit's operational state dynamic rather than static. The unit is selectively activated or deactivated based on the actual presence of control transfer instructions in each fetch group, allowing the system to adapt its energy consumption profile to the actual computational needs of the executing code.

Inventive Principle:
Principle #15Dynamics

2Speed

If the branch prediction unit is continuously active to handle all instructions, then the speed of instruction processing is maintained, but the energy waste increases due to redundant operations on non-CTI instructions

Engineering Contradiction:
Improveinstruction processing speedVSAvoidenergy wasted on unnecessary accesses
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent applies the extraction principle by separating the branch prediction functionality from the universal instruction processing path. Instead of having all instructions trigger branch prediction accesses, the system extracts and identifies only control transfer instructions that actually require branch prediction, thereby eliminating redundant operations and reducing energy loss.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements partial action by providing branch prediction services only to the extent actually needed - specifically for control transfer instructions. Rather than applying branch prediction uniformly to all instructions (excessive action), the system selectively applies it only where necessary, reducing energy consumption while maintaining adequate processing speed for critical paths.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3850480B1Controlling accesses to a branch prediction unit for sequences of fetch groups
Publication Date: 2024.06.05 ADVANCED MICRO DEVICES INC
  • EP3850480B1 patent drawingFigure 1
  • EP3850480B1 patent drawingFigure 2
  • EP3850480B1 patent drawingFigure 3~4

AI summary

An electronic device is described that handles control transfer instructions (CTIs) when executing instructions in program code. The electronic device has a processor that includes a branch prediction functional block and a sequential fetch logic functional block. The sequential fetch logic functional block determines, based on a record associated with a CTI, that a specified number of fetch groups of instructions that were previously determined to include no CTIs are to be fetched for execution in sequence following the CTI. When each of the specified number of fetch groups is fetched and prepared for execution, the sequential fetch logic prevents corresponding accesses of the branch prediction functional block for acquiring branch prediction information for instructions in that fetch group.