Track Table Pre-fetching for Cache Miss Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cache systems face bottlenecks in performance due to the widening gap between processor speed and memory speed, leading to increased cache misses, especially in multi-way set associative configurations, which limit cache capacity and efficiency.

Innovation Solution

The method involves pre-fetching instruction segments into a higher level memory using a track table system that extracts branch information, allowing for pre-fetching of branch target instructions before execution, thereby reducing cache misses and eliminating the need for traditional cache tag matching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multi-way set associative cache is used to reduce conflict misses, then cache efficiency is improved, but the number of ways is limited due to power and speed limitations

Engineering Contradiction:
Improvecache efficiencyVSAvoidnumber of ways
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements pre-fetching of instruction segments into the cache before they are actually needed by the processor. By analyzing branch information and predicting future instruction needs, the system proactively loads data into the cache, eliminating the need for complex multi-way set associative structures to handle all possible access patterns simultaneously.

Inventive Principle:
Principle #10Preliminary action

2Speed

If cache capacity is increased to match processor speed, then performance is improved, but traditional cache structures require multiple layers with slower lower level caches

Engineering Contradiction:
Improvecache access speedVSAvoidcache capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system pre-fetches instruction segments into the cache based on branch prediction and track table analysis, ensuring that needed instructions are already in the fast cache before the processor needs them. This approach allows the cache to maintain smaller capacity while achieving high effective speed by having the right data ready in advance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The cache system uses its own resources (track table, branch information extraction) to automatically determine and load its own future needs, eliminating the need for complex multi-layer cache hierarchies. The cache serves itself by predicting and pre-loading instructions, reducing dependency on slower lower-level caches.

Inventive Principle:
Principle #25Self-service

3Measurement precision

If traditional cache tag matching is used, then cache hits are detected, but cache misses still occur due to the gap between processor and memory speed

Engineering Contradiction:
Improvecache hit detection accuracyVSAvoidcache miss penalty
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs pre-fetching of instruction segments based on branch prediction before cache misses occur. By analyzing branch information and creating tracks of instruction segments, the system loads predicted instructions into the cache in advance, eliminating the time penalty associated with cache misses while maintaining accurate tag matching for actual hits.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9569219B2Low-miss-rate and low-miss-penalty cache system and method
Publication Date: 2017.02.14 SHANGHAI XINHAO MICROELECTRONICS
  • US9569219B2 patent drawing
  • US9569219B2 patent drawing
  • US9569219B2 patent drawing

AI summary

A method for assisting operations of a processor core coupled to a first memory and a second memory includes: examining instructions being filled from the first memory to the second memory to extract instruction information containing at least branch information of the instructions, and creating a plurality of tracks based on the extracted instruction information. Further, the method includes filling one or more instructions from the first memory to the second memory based on one or more tracks from the plurality of tracks before the processor core starts executing the instructions, such that the processor core fetches the instructions from the second memory for execution. Filling the instructions further includes pre-fetching from the first memory to the second memory instruction segments containing the instructions corresponding to at least two levels of branch target instructions based on the one or more tracks.