Branch Prediction Unit Access Control via Minimum Predictor Use

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processors incur unnecessary power consumption due to frequent accesses of branch prediction functional blocks for instructions that do not involve control transfer instructions, as these blocks are accessed regardless of whether they are needed, leading to inefficiencies in power usage.

Innovation Solution

The implementation of a minimum predictor use (MPU) functional block that uses records associated with fetch groups to determine if subsequent groups include control transfer instructions, thereby preventing unnecessary accesses to the branch prediction functional block by storing and updating records in a cache, and using confidence information to decide when to block or allow accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the branch prediction functional block is accessed for every fetch group, then branch prediction accuracy is maintained, but power consumption increases due to unnecessary accesses for non-control transfer instructions

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by checking whether a fetch group contains control transfer instructions before accessing the branch prediction functional block. The processor identifies the presence or absence of control transfer instructions in advance, and only accesses the branch prediction unit when actually needed, thereby avoiding unnecessary power consumption while maintaining prediction accuracy when required

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements partial action by selectively accessing the branch prediction functional block only for fetch groups that contain control transfer instructions, rather than accessing it for every fetch group. This partial access strategy maintains adequate branch prediction capability for control transfer instructions while significantly reducing unnecessary accesses for regular instructions, thus lowering power consumption

Inventive Principle:
Principle #16Partial or excessive action

2Speed

If the branch prediction functional block is accessed frequently, then predicted resolutions are available early for directing execution paths, but unnecessary accesses occur for instructions that are not control transfer instructions

Engineering Contradiction:
Improveprediction availability speedVSAvoidelectrical power consumed
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The processor performs preliminary identification of control transfer instructions in fetch groups before accessing the branch prediction functional block. By checking the instruction type in advance, the system ensures that branch prediction is only activated when needed, maintaining speed for actual control transfers while avoiding energy waste on unnecessary accesses

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the branch prediction operation from the universal fetch group processing flow and applies it selectively only to fetch groups containing control transfer instructions. This extraction separates the necessary prediction operations from unnecessary ones, maintaining execution speed for control transfers while eliminating wasted energy on regular instructions

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10853075B2Controlling accesses to a branch prediction unit for sequences of fetch groups
Publication Date: 2020.12.01 ADVANCED MICRO DEVICES INC
  • US10853075B2 patent drawing
  • US10853075B2 patent drawing
  • US10853075B2 patent drawing

AI summary

An electronic device handles accesses of a branch prediction functional block when executing instructions in program code. The electronic device includes a processor having the branch prediction functional block that provides branch prediction information for control transfer instructions (CTIs) in the program code and a minimum predictor use (MPU) functional block. The MPU functional block determines, based on a record associated with a given fetch group of instructions, that a specified number of subsequent fetch groups of instructions that were previously determined to include no CTIs or conditional CTIs that were not taken are to be fetched for execution in sequence following the given fetch group. The MPU functional block then, when each of the specified number of the subsequent fetch groups is fetched and prepared for execution, prevents corresponding accesses of the branch prediction functional block for acquiring branch prediction information for instructions in that subsequent fetch group.