High-Bandwidth Prefetcher for HBM Queuing Delay Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current high-performance computing systems face significant queuing delays due to limited outstanding request buffers (ORBs) in caches, especially when executing applications with vector or SIMD instructions, which limits memory parallelism despite the use of high-bandwidth memory (HBM).

Innovation Solution

A high-bandwidth prefetcher (HBP) is introduced that allows application programs to specify data prefetching through a prefetch instruction, allocating ORBs efficiently and issuing prefetch requests in parallel with instruction execution, thereby reducing the need for explicit prefetching within loops and optimizing ORB usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If more ORBs are added to the cache, then memory parallelism and bandwidth utilization are improved, but cache area and power consumption increase

Engineering Contradiction:
Improvememory parallelismVSAvoidcache area
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent implements automatic prefetching where the memory system proactively retrieves data before it is explicitly requested by the CPU. The prefetcher analyzes memory access patterns and automatically issues prefetch requests to bring needed data into the cache in advance, eliminating the need for the CPU to manually manage prefetching and reducing the burden on ORBs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory subsystem provides self-service prefetching capabilities, where the memory controller autonomously manages prefetch operations based on observed access patterns. This self-service mechanism reduces the need for extensive ORB allocation and manual memory management, allowing the system to optimize itself without requiring additional hardware resources.

Inventive Principle:
Principle #25Self-service

2Productivity

If more ORBs are added to the cache, then memory parallelism and bandwidth utilization are improved, but power consumption increases

Engineering Contradiction:
Improvememory parallelismVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The patent implements automatic prefetching where the memory system proactively retrieves data before it is explicitly requested by the CPU. The prefetcher analyzes memory access patterns and automatically issues prefetch requests to bring needed data into the cache in advance, eliminating the need for the CPU to manually manage prefetching and reducing the burden on ORBs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory subsystem provides self-service prefetching capabilities, where the memory controller autonomously manages prefetch operations based on observed access patterns. This self-service mechanism reduces the need for extensive ORB allocation and manual memory management, allowing the system to optimize itself without requiring additional hardware resources.

Inventive Principle:
Principle #25Self-service

3Productivity

If explicit prefetching is used within loops, then memory access efficiency is improved, but instruction complexity and coding burden increase

Engineering Contradiction:
Improvememory access efficiencyVSAvoidinstruction complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory subsystem provides self-service prefetching capabilities, where the memory controller autonomously manages prefetch operations based on observed access patterns. This self-service mechanism reduces the need for extensive ORB allocation and manual memory management, allowing the system to optimize itself without requiring additional hardware resources.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements automatic prefetching where the memory system proactively retrieves data before it is explicitly requested by the CPU. The prefetcher analyzes memory access patterns and automatically issues prefetch requests to bring needed data into the cache in advance, eliminating the need for the CPU to manually manage prefetching and reducing the burden on ORBs.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20190163637A9High-bandwidth prefetcher for high-bandwidth memory
Publication Date: 2019.05.30 CRAY INC
  • US20190163637A9 patent drawing
  • US20190163637A9 patent drawing
  • US20190163637A9 patent drawing

AI summary

A method for prefetching data into a cache is provided. The method allocates an outstanding request buffer (“ORB”). The method stores in an address field of the ORB an address and a number of blocks. The method issues prefetch requests for a degree number of blocks starting at the address. When a prefetch response is received for all the prefetch requests, the method adjusts the address of the next block to prefetch and adjusts the number of blocks remaining to be retrieved and then issues prefetch requests for a degree number of blocks starting at the adjusted address. The prefetching pauses when a maximum distance between the reads of the prefetched blocks and the last prefetched block is reached. When a read request for a prefetched block is received, the method resumes prefetching when a resume criterion is satisfied.