Multi-tiered Memory Prefetching via Pattern History Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data prefetching methods in multi-core processors face challenges with large pattern history tables that consume processor chip space and suffer from hash aliasing issues, leading to inefficient data retrieval from system memory.

Innovation Solution

Implementing a multi-tiered system memory with a near memory cache that stores frequently accessed data, reducing access times and eliminating hash aliasing by using a faster, volatile near memory as a cache for emerging non-volatile technologies, which acts as a high-priority region of system memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a large pattern history table structure is used to store data access patterns, then data prefetching capability is improved, but processor chip space is consumed and hash aliasing problems occur

Engineering Contradiction:
Improvedata prefetching capabilityVSAvoidprocessor chip space
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent extracts the pattern history table from the processor chip and places it in system memory, eliminating the need for large on-chip storage while maintaining prefetching capability. The processor chip now only contains the prefetcher logic and a small portion of the pattern history table, while the bulk of the table resides in system memory and is accessed as needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary structure where a small portion of the pattern history table is kept on the processor chip and the majority is stored in system memory. This intermediary arrangement allows the processor to maintain prefetching functionality while offloading the storage burden to system memory, effectively resolving the space constraint.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a large pattern history table structure is used to store data access patterns, then data prefetching capability is improved, but hash aliasing problems occur

Engineering Contradiction:
Improvedata prefetching capabilityVSAvoidhash aliasing accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the pattern history table into two parts: a small, frequently accessed portion stored on the processor chip, and a large, less frequently accessed portion stored in system memory. This segmentation allows the critical prefetching data to be quickly accessible while reducing the overall hash aliasing impact by distributing the table entries across different memory locations.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If data is retrieved from system memory, then data retrieval time is reduced by using last level cache, but system memory access time remains significantly longer compared to cache access

Engineering Contradiction:
Improvedata retrieval timeVSAvoidsystem memory access speed
Core Design Contradiction:
Loss of timeVSSpeed

Solution Approach 1:

The patent implements preliminary action by using the prefetcher logic to predict future data access patterns and load data into the last level cache before it is actually needed by the processor cores. This advance preparation reduces the impact of slow system memory access by ensuring that frequently accessed data is already in the faster cache when needed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10108549B2Method and apparatus for pre-fetching data in a system having a multi-level system memory
Publication Date: 2018.10.23 INTEL CORP
  • US10108549B2 patent drawing
  • US10108549B2 patent drawing
  • US10108549B2 patent drawing

AI summary

A method is described that includes creating a first data pattern access record for a region of system memory in response to a cache miss at a host side cache for a first memory access request. The first memory access request specifies an address within the region of system memory. The method includes fetching a previously existing data access pattern record for the region from the system memory in response to the cache miss. The previously existing data access pattern record identifies blocks of data within the region that have been previously accessed. The method includes pre-fetching the blocks from the system memory and storing the blocks in the cache.