Set Associative Shadow Cache Way Prediction for Processor Stalling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors face performance degradation due to stalling when encountering conditional branch instructions, as they cannot predict which path will be taken, leading to inefficiencies in fetching and executing instructions, particularly in high-performance environments.

Innovation Solution

A method that predicts the way of a set associative shadow cache, allowing for the selection of a predicted way to fetch and forward both the first and second cache lines in a single clock cycle by using a shadow cache at the same hierarchical level as the instruction cache, facilitating high-throughput performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the processor stalls to resolve conditional branch instructions, then instruction fetch accuracy is improved, but processor throughput deteriorates

Engineering Contradiction:
Improveinstruction fetch accuracyVSAvoidprocessor throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent implements branch prediction mechanisms that predict the outcome of conditional branch instructions before they are executed. This preliminary action allows the processor to fetch and decode instructions along the predicted path in advance, avoiding stalls while maintaining instruction fetch accuracy through subsequent validation of the prediction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces prediction tables and branch history buffers as intermediary structures that store information about previous branch outcomes. These intermediaries enable the processor to make informed predictions about future branch behavior without stalling, bridging the gap between accurate instruction fetching and maintaining high throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the processor fetches multiple cache lines in parallel, then instruction supply to execution units is improved, but cache memory access complexity increases

Engineering Contradiction:
Improveinstruction supply rateVSAvoidcache memory access complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the cache memory system into multiple independent cache lines that can be accessed in parallel. Each cache line is independently managed and can be fetched simultaneously, enabling high instruction supply rates while keeping individual cache access operations simple and manageable.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent utilizes multi-dimensional cache indexing and associativity to organize cache lines. This dimensional organization allows multiple cache lines to be accessed in parallel through different dimensions of the cache structure, increasing instruction supply capability while maintaining manageable access complexity through structured memory organization.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If the processor uses wide architecture to fetch multiple cache lines, then instruction throughput is improved, but front-end complexity increases

Engineering Contradiction:
Improveinstruction throughputVSAvoidfront-end complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs the front-end architecture with multi-functional components that can handle multiple cache line fetches, decodes, and dispatches simultaneously. These universal components perform the same operations on multiple instruction streams in parallel, achieving high throughput without proportionally increasing front-end complexity.

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

Solution Approach 2:

The patent implements dynamic instruction fetching and decoding that adapts to the actual execution needs. The front-end can dynamically adjust which cache lines to fetch and how many instructions to decode based on current processor state, enabling high throughput while avoiding the complexity of always-maximal parallel processing.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10248570B2Methods, systems and apparatus for predicting the way of a set associative cache
Publication Date: 2019.04.02 INTEL CORP
  • US10248570B2 patent drawing
  • US10248570B2 patent drawing
  • US10248570B2 patent drawing

AI summary

A method for predicting a way of a set associative shadow cache is disclosed. As a part of a method, a request to fetch a first far taken branch instruction of a first cache line from an instruction cache is received, and responsive to a hit in the instruction cache, a predicted way is selected from a way array using a way that corresponds to the hit in the instruction cache. A second cache line is selected from a shadow cache using the predicted way and the first cache line and the second cache line are forwarded in the same clock cycle.