Dynamic Prefetch Depth Adjustment for Resource Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computing systems face inefficiencies due to fixed prefetch depths, leading to resource imbalances where some streams benefit from prefetching while others suffer from delays, resulting in suboptimal system performance and increased latency.

Innovation Solution

A method to dynamically adjust prefetch depth by identifying and comparing the number of inflight prefetches to available prefetch machines, allowing for adaptive adjustments to ensure even resource distribution and optimal prefetching across multiple streams.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a fixed prefetch depth is used for all streams, then some streams can benefit from prefetching, but other streams suffer from delays and resource imbalances

Engineering Contradiction:
Improveprefetching efficiencyVSAvoidstream-specific performance
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic adjustment of prefetch depth for each stream based on real-time system conditions. The prefetch depth is no longer fixed but adapts according to the number of inflight prefetches and available prefetch machines, allowing the system to optimize performance for different stream conditions while maintaining overall efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies different prefetch depths to different streams based on their individual characteristics and current system state. Instead of using a uniform prefetch depth for all streams, the system tailors the prefetch depth locally for each stream, ensuring that each stream receives the appropriate level of prefetching resources.

Inventive Principle:
Principle #3Local quality

2Quantity of substance

If prefetch depth is increased to improve prefetching coverage, then more data can be preloaded, but resource contention and latency increase

Engineering Contradiction:
Improveprefetch data volumeVSAvoidprefetch latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent employs feedback mechanisms where the system continuously monitors the number of inflight prefetches and available prefetch machines. Based on this feedback, the prefetch depth is dynamically adjusted - increasing when resources are available and decreasing when contention is high, thus optimizing the balance between prefetch data volume and latency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent changes the prefetch depth parameter dynamically based on system conditions. Rather than using a static parameter, the system adjusts the prefetch depth value according to the current number of inflight prefetches and available prefetch machines, allowing optimal adaptation to varying workloads and resource availability.

Inventive Principle:
Principle #35Parameter changes

3Loss of time

If prefetch depth is decreased to reduce resource contention, then latency is reduced, but prefetching effectiveness diminishes

Engineering Contradiction:
Improveprefetch latencyVSAvoidprefetching effectiveness
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system dynamically adjusts prefetch depth based on real-time monitoring of inflight prefetches and available prefetch machines. When resource contention is low, the prefetch depth is increased to improve prefetching effectiveness. When contention is high, the depth is reduced to minimize latency, thus dynamically optimizing the trade-off between effectiveness and timing.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11301386B2Dynamically adjusting prefetch depth
Publication Date: 2022.04.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11301386B2 patent drawing
  • US11301386B2 patent drawing
  • US11301386B2 patent drawing

AI summary

Disclosed is a computer implemented method and system to dynamically adjust prefetch depth, the method comprising, identifying a first prefetch stream, wherein the first prefetch stream is identified in a prefetch request queue (PRQ), and wherein the first prefetch stream includes a first prefetch depth. The method also comprises determining a number of inflight prefetches, and comparing, a number of prefetch machines against the number of inflight prefetches, wherein each of the prefetch machines is configured to monitor one prefetch request. The method further includes adjusting, in response to the comparing, the first prefetch depth of the first prefetch stream.