Memory Pending Queue Reallocation Based on Stall Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In memory-centric computing architectures with a memory fabric, long latency memory access requests can overcrowd the memory pending queue, leading to starvation of shorter latency requests due to variable access latencies across different memory locations.

Innovation Solution

Implementing a dynamic reallocation mechanism for the memory pending queue, where stall counters track the percentage of stalled requests for each memory access class, allowing for reallocation of queue space from non-stalled to stalled classes, ensuring fair access and preventing queue overflow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single memory pending queue is used for all memory access classes, then queue management is simplified, but long latency requests dominate the queue causing starvation of short latency requests

Engineering Contradiction:
Improvequeue management complexityVSAvoidmemory access efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the single memory pending queue into multiple class-specific pending queues (CPQs), one for each memory access class. This segmentation allows short latency requests and long latency requests to be handled separately, preventing long latency requests from blocking short latency requests while maintaining overall system efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic allocation of queue entries from a shared pool to different class-specific pending queues based on real-time stall conditions. When a class experiences stalls, the system dynamically adjusts the number of queue entries allocated to that class, creating a responsive system that adapts to changing workload conditions.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If queue space is allocated statically to memory access classes, then allocation is simple and predictable, but it cannot adapt to varying workload conditions causing unfair access

Engineering Contradiction:
Improvequeue allocation simplicityVSAvoidworkload adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent employs feedback mechanisms through stall counters that monitor the performance of each memory access class. When a class experiences excessive stalls, the feedback triggers reallocation of queue entries from other classes to the stalled class, creating a closed-loop control system that automatically adapts to workload changes.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the parameter of queue entry allocation dynamically based on stall conditions. Instead of fixed allocation, the number of queue entries assigned to each class is adjusted as a variable parameter responding to real-time performance metrics, enabling the system to adapt to varying workload conditions.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If more queue entries are allocated to long latency requests, then their completion rate improves, but short latency requests suffer from queue overflow and increased stall time

Engineering Contradiction:
Improvelong latency request completionVSAvoidshort latency request stall time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by allocating queue entries to memory access classes on a need-based basis rather than providing excessive allocation to all classes uniformly. The system provides just enough queue capacity to each class based on current stall conditions, preventing waste while ensuring adequate resources for completing requests.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10725940B2Reallocate memory pending queue based on stall
Publication Date: 2020.07.28 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10725940B2 patent drawing
  • US10725940B2 patent drawing
  • US10725940B2 patent drawing

AI summary

Techniques for reallocating a memory pending queue based on stalls are provided. In one aspect, it may be determined at a memory stop of a memory fabric that at least one class of memory access is stalled. It may also be determined at the memory stop of the memory fabric that there is at least one class of memory access that is not stalled. At least a portion of a memory pending queue may be reallocated from the class of memory access that is not stalled to the class of memory access that is stalled.