Dynamic Store Gathering Window for Multithreaded Processor Cores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional store gathering techniques in multiprocessor systems can cause jitter in store operations and negatively impact performance, especially for streaming workloads, due to the filling of store queues and inefficient handling of store operations.

Innovation Solution

A store queue management system that extends the store gathering window by maintaining a thread identifier for each store-type operation and adjusting the duration of the store gathering window based on queue fill levels, allowing for more efficient buffering and processing of store operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional store gathering is implemented to reduce the number of store accesses to cache, then store operation efficiency is improved, but store pipe jitter increases and streaming workload performance deteriorates

Engineering Contradiction:
Improvestore operation efficiencyVSAvoidstore pipe jitter
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The store gathering window duration is made dynamic rather than fixed. The system adjusts the duration of the store gathering window based on the fill level of the store queue, extending it when the queue is not full and maintaining conventional behavior when the queue is full. This dynamic adjustment resolves the contradiction by allowing flexible adaptation to different operational conditions, improving efficiency when possible while maintaining stability when needed.

Inventive Principle:
Principle #15Dynamics

2Productivity

If store queue fills are allowed to proceed conventionally to maximize buffering capacity, then store operation coalescing is improved, but store pipe jitter increases

Engineering Contradiction:
Improvestore operation coalescingVSAvoidstore pipe jitter
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system changes the parameter of store gathering window duration based on store queue fill level. When the store queue is not full, the window duration is extended to allow more store operations to be coalesced, improving productivity. When the store queue approaches full capacity, the conventional shorter window duration is maintained to prevent store pipe jitter. This parameter change strategy resolves the contradiction by adapting the gathering window duration to current system state.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the store gathering window duration is extended to improve streaming workload performance, then more store operations can be gathered, but store queue fill rate increases causing jitter

Engineering Contradiction:
Improvestreaming workload performanceVSAvoidstore queue fill rate
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system implements feedback control by monitoring the store queue fill level and using this information to adjust the store gathering window duration. When the queue fill level is low, the system feedbacks to extend the gathering window to improve streaming performance. When the queue fill level becomes high, the system feedbacks to maintain or reduce the window duration to prevent excessive fill rate and associated jitter. This feedback mechanism resolves the contradiction by continuously adapting to queue conditions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11915045B2Adjusting store gather window duration in a data processing system supporting simultaneous multithreading
Publication Date: 2024.02.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11915045B2 patent drawing
  • US11915045B2 patent drawing
  • US11915045B2 patent drawing

AI summary

In at least some embodiments, a store-type operation is received and buffered within a store queue entry of a store queue associated with a cache memory of a processor core capable of executing multiple simultaneous hardware threads. A thread identifier indicating a particular hardware thread among the multiple hardware threads that issued the store-type operation is recorded. An indication of whether the store queue entry is a most recently allocated store queue entry for buffering store-type operations of the hardware thread is also maintained. While the indication indicates the store queue entry is a most recently allocated store queue entry for buffering store-type operations of the particular hardware thread, the store queue extends a duration of a store gathering window applicable to the store queue entry. For example, the duration may be extended by decreasing a rate at which the store gathering window applicable to the store queue entry ends.