Processor Front-End Shadow Cache for Far Branch Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors face performance degradation and unsatisfactory latencies due to stalling when encountering conditional branch instructions and loops, as they cannot predict the path taken by far branch instructions, leading to inefficient instruction fetching and limited forwarding of instructions per cycle.

Innovation Solution

A method for a wide and efficient front-end operation that involves reading a cache line containing a far taken branch instruction and its target cache line in a single cycle, using a data table to determine whether to fetch the next cache line or the target cache line, and duplicating cache lines for loop instructions to facilitate efficient forwarding, even when encountering far branches and loops.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the processor stalls to resolve far branch instructions, then branch prediction accuracy is improved, but processor performance and instruction throughput deteriorate

Engineering Contradiction:
Improvebranch prediction accuracyVSAvoidinstruction throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent implements a shadow cache that pre-loads and stores target cache lines before they are actually needed for execution. When a far branch instruction is encountered, the target cache line is already available in the shadow cache, eliminating the need to stall and allowing continuous instruction flow to the execution units.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the processor reads multiple cache lines in parallel, then instruction supply to scheduler is improved, but front-end complexity increases

Engineering Contradiction:
Improveinstruction supply rateVSAvoidfront-end complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the front-end into separate functional components: a shadow cache for storing target cache lines, a main cache for normal operations, and a mechanism to selectively supply cache lines to the scheduler. This segmentation allows parallel reading of multiple cache lines while maintaining manageable complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

3Productivity

If the processor duplicates cache lines for loop instructions, then loop execution efficiency is improved, but memory bandwidth consumption increases

Engineering Contradiction:
Improveloop execution efficiencyVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent creates duplicate copies of cache lines containing loop instructions and stores them in the shadow cache. These duplicates are then supplied to the scheduler alongside other cache lines, enabling the execution units to process loop iterations efficiently without requiring additional memory bandwidth for repeated fetches.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10740126B2Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
Publication Date: 2020.08.11 INTEL CORP
  • US10740126B2 patent drawing
  • US10740126B2 patent drawing
  • US10740126B2 patent drawing

AI summary

Methods for supporting wide and efficient front-end operation with guest architecture emulation are disclosed. As a part of a method for supporting wide and efficient front-end operation, upon receiving a request to fetch a first far taken branch instruction, a cache line that includes the first far taken branch instruction, a next cache line and a cache line located at the target of the first far taken branch instruction is read. Based on information that is accessed from a data table, the cache line and either the next cache line or the cache line located at the target is fetched in a single cycle.