Thread-Aware Bandwidth Shifting for Multi-Core Memory Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core systems, data prefetching can lead to inefficient memory bandwidth usage due to speculative prefetching of unnecessary data, especially when multiple threads are executed simultaneously, causing cache pollution and performance degradation under constrained bandwidth conditions.

Innovation Solution

A bandwidth shifting program that monitors usage information for each thread, calculates the impact of hardware data prefetching, and adjusts prefetch settings to optimize memory bandwidth allocation by enabling, disabling, or altering prefetching based on the prefetch usefulness of each thread, thereby maximizing bandwidth utilization and improving system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hardware data prefetching is enabled for all threads, then instruction execution speed is improved, but memory bandwidth is wasted and cache pollution occurs

Engineering Contradiction:
Improveinstruction execution speedVSAvoidmemory bandwidth waste
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent applies local quality by differentiating prefetching treatment for different threads based on their individual characteristics. Each thread is analyzed for its prefetch usefulness, and prefetching is selectively enabled, disabled, or adjusted on a per-thread basis rather than uniformly applied to all threads, thus optimizing bandwidth usage while maintaining performance benefits where applicable

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the parameter of prefetching intensity dynamically. By monitoring memory access patterns and calculating prefetch usefulness metrics, the system adjusts prefetching parameters (such as prefetch distance, buffer size, or enabled/disabled state) to match actual workload requirements, preventing both over-prefetching and under-prefetching

Inventive Principle:
Principle #35Parameter changes

2Loss of time

If speculative prefetching is used to anticipate future data needs, then processor wait states are reduced, but unnecessary data is fetched causing cache pollution

Engineering Contradiction:
Improveprocessor wait statesVSAvoidcache pollution
Core Design Contradiction:
Loss of timeVSObject-generated harmful factors

Solution Approach 1:

The patent implements feedback mechanisms by monitoring memory access patterns, cache hit rates, and prefetch accuracy metrics. This feedback is used to dynamically adjust or disable speculative prefetching when it proves ineffective or harmful, thereby reducing cache pollution while maintaining the benefits of prefetching when it is successful

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent applies partial action by selectively enabling prefetching only for specific threads or specific memory access patterns that demonstrate prefetch usefulness. Rather than applying prefetching universally, the system identifies and targets only those cases where prefetching provides net benefit, avoiding the harmful effects of excessive prefetching

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If multiple threads are executed simultaneously on multi-core systems, then system throughput is increased, but memory bandwidth contention increases causing performance degradation

Engineering Contradiction:
Improvesystem throughputVSAvoidmemory bandwidth utilization
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments the memory bandwidth resource allocation by thread. Each thread is independently evaluated for its prefetch needs, and bandwidth is allocated proportionally based on actual requirements rather than equally or based on worst-case assumptions. This segmentation allows concurrent threads to coexist with reduced contention

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic resource allocation where memory bandwidth allocation for prefetching changes over time based on workload conditions. The system continuously monitors system state and adjusts prefetching intensity and bandwidth allocation dynamically, allowing optimal performance under varying multi-threaded workloads

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9645935B2Intelligent bandwidth shifting mechanism
Publication Date: 2017.05.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9645935B2 patent drawing
  • US9645935B2 patent drawing
  • US9645935B2 patent drawing

AI summary

In an approach for sharing memory bandwidth in one or more processors, a processor receives a first set of monitored usage information for one or more processors executing one or more threads. A processor calculates impact of hardware data prefetching for each thread of the one or more threads, based on the first set of monitored usage information. A processor adjusts prefetch settings for the one or more threads, based on the calculated impact of hardware data prefetching for each thread of the one or more threads.