Prefetch Filter Cache for Processor Fault Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computer processors face delays due to prefetch faults, which occur when attempting to read data from invalid or empty memory locations, leading to multiple failed prefetch requests that hinder program execution.

Innovation Solution

Incorporating a prefetch filter cache that stores information about previous prefetch faults, allowing the processor to compare incoming requests against this cache and drop requests that are likely to fault, thereby avoiding unnecessary data retrieval operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor executes prefetch requests to reduce execution time, then data retrieval efficiency is improved, but prefetch faults occur when reading from invalid memory locations causing delays

Engineering Contradiction:
Improvedata retrieval efficiencyVSAvoidprefetch request success rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by checking the prefetch filter cache before executing prefetch requests. The filter cache pre-stores information about invalid memory locations, allowing the system to identify and filter out faulty prefetch requests before they are executed, thus preventing prefetch faults while maintaining efficient data retrieval for valid requests

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The prefetch filter cache acts as an intermediary between the prefetch logic and the memory system. It mediates prefetch requests by filtering out those targeting invalid memory locations based on previously stored fault information, thereby protecting the system from prefetch faults while allowing legitimate prefetch operations to proceed

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple prefetch requests are executed to optimize program execution, then overall execution time is reduced, but repeated failed prefetch requests to the same memory locations increase execution time

Engineering Contradiction:
Improveprogram execution speedVSAvoidtime wasted on failed prefetch requests
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system implements feedback by storing information about prefetch faults in the prefetch filter cache. When a prefetch fault occurs, the fault information is recorded and fed back into the filter cache, which then uses this information to prevent future prefetch requests to the same invalid memory locations, eliminating repeated failures and wasted time

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system discards futile prefetch requests by filtering them out using the prefetch filter cache before execution. By identifying and discarding requests targeting invalid memory locations based on stored fault information, the system recovers execution time that would have been wasted on failed prefetch operations

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10579530B2Prefetch filter cache for a processor
Publication Date: 2020.03.03 INTEL CORP
  • US10579530B2 patent drawing
  • US10579530B2 patent drawing
  • US10579530B2 patent drawing

AI summary

In an embodiment, a processor includes a plurality of cores, with at least one core including prefetch logic. The prefetch logic comprises circuitry to: receive a prefetch request; compare the received prefetch request to a plurality of entries of a prefetch filter cache; and in response to a determination that the received prefetch request matches one of the plurality of entries of the prefetch filter cache, drop the received prefetch request. Other embodiments are described and claimed.