Branch Prediction Throughput via Cacheline Skipping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processor architectures, branch prediction is inefficient as it often leads to pipeline stalls due to uncertainty about branch outcomes, causing delays and reducing throughput, especially when processing cachelines with no branches.

Innovation Solution

A branch prediction circuit and a branch target buffer are used to detect the presence of branch instructions and store a memory segment empty flag, allowing the processor to skip over cachelines without branches, thereby reducing unnecessary processing cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If branch prediction is performed on every cacheline, then branch prediction coverage is improved, but processing throughput deteriorates due to unnecessary processing of cachelines without branches

Engineering Contradiction:
Improvebranch prediction coverageVSAvoidprocessing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The branch prediction circuit detects cachelines without branch instructions and skips processing them entirely. When the circuit identifies a cacheline containing no branches, it bypasses the prediction logic for that cacheline and proceeds directly to the next one, eliminating wasted processing cycles while maintaining full coverage for cachelines that actually contain branches

Inventive Principle:
Principle #21Skipping (Rushing through)

Solution Approach 2:

The harmful element of processing unnecessary cachelines is extracted and removed from the system. The branch prediction circuit includes detection logic that identifies and excludes cachelines without branches from the prediction process, separating the useful processing (cachelines with branches) from the wasteful processing (cachelines without branches)

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If branch prediction processing is performed on all cachelines, then no branch is missed, but processing time increases due to cycles spent on cachelines without branches

Engineering Contradiction:
Improvebranch detection completenessVSAvoidprocessing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The circuit skips over cachelines that have been determined to contain no branch instructions, rapidly advancing through these empty segments without executing prediction logic. This skipping mechanism reduces processing time by eliminating delays associated with analyzing cachelines that cannot possibly contain branches

Inventive Principle:
Principle #21Skipping (Rushing through)

Solution Approach 2:

The system performs preliminary detection of branch instructions within cachelines before committing to full prediction processing. By预先 identifying cachelines without branches, the system avoids wasting time on unnecessary processing, and prepares the branch prediction circuit to focus only on cachelines that actually contain branches

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11182166B2Branch prediction throughput by skipping over cachelines without branches
Publication Date: 2021.11.23 SAMSUNG ELECTRONICS CO LTD
  • US11182166B2 patent drawing
  • US11182166B2 patent drawing
  • US11182166B2 patent drawing

AI summary

According to one general aspect, an apparatus may include a branch prediction circuit configured to predict if a branch instruction will be taken or not. The apparatus may include a branch target buffer circuit configured to store a memory segment empty flag that indicates whether or not the memory segment after a target address includes at least one other branch instruction, wherein the memory segment empty flag was created during a commit stage of a prior occurrence of the branch instruction. The branch prediction circuit may be configured to skip over the memory segment if the memory segment empty flag indicates a lack of other branch instruction(s).