Memory Buffer Allocation Across Multiple Channels

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems with multiple client devices, memory bank contention leads to inefficiencies due to recovery time periods and suboptimal use of the system bus, as existing methods like interleaving memory addresses do not guarantee immediate access for all client devices.

Innovation Solution

Allocating separate memory buffers to different sets of memory banks across multiple memory channels, with distinct sequence identifiers and operating frequencies, to manage memory operations and reduce contention, thereby optimizing memory channel bandwidth usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory addresses are interleaved within multiple memory devices, then memory bank contention is reduced, but system bus utilization becomes suboptimal due to arbitration states

Engineering Contradiction:
Improvememory bank contention reductionVSAvoidsystem bus utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The invention divides the memory buffer into multiple segments, with each segment allocated to different memory banks across multiple memory channels. This segmentation allows simultaneous access to different memory buffers by different client devices, eliminating the arbitration state and ensuring that system bus utilization remains optimal while maintaining reduced memory bank contention through the interleaved structure.

Inventive Principle:
Principle #1Segmentation

2Productivity

If a single memory buffer is shared across multiple client devices, then memory resource utilization improves, but memory bank contention increases due to recovery time periods

Engineering Contradiction:
Improvememory resource utilizationVSAvoidmemory bank contention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The memory buffer is segmented into multiple portions allocated to different memory banks, allowing multiple client devices to access different segments simultaneously without interfering with each other's memory operations, thus avoiding recovery time periods and reducing contention while maintaining high resource utilization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention extends the memory allocation from a single-dimension shared buffer to a multi-dimensional structure spanning multiple memory channels and memory banks, enabling parallel access paths that eliminate contention while preserving resource utilization efficiency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Speed

If memory operations are executed at high frequency, then processing speed improves, but power consumption increases

Engineering Contradiction:
Improveprocessing speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The system dynamically adjusts the operating frequency of different memory channels based on workload requirements, allowing high-frequency operations only when necessary for optimal processing speed while reducing frequency during low-demand periods to minimize power consumption

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the operating frequency parameter of memory channels dynamically, enabling the system to optimize between processing speed and power consumption by adjusting frequency based on actual memory access patterns and client device demands.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10795837B2Allocation of memory buffers in computing system with multiple memory channels
Publication Date: 2020.10.06 ADVANCED MICRO DEVICES INC
  • US10795837B2 patent drawing
  • US10795837B2 patent drawing
  • US10795837B2 patent drawing

AI summary

A method, computer program product, and system are provided for associating one or more memory buffers in a computing system with a plurality of memory channels. The method can include associating a first memory buffer to a first plurality of memory banks, where the first plurality of memory banks spans over a first set of one or more memory channels. Similarly, the method can include associating a second memory buffer to a second plurality of memory banks, where the second plurality of memory banks spans over a second set of one or more memory channels. The method can also include associating a first sequence identifier and a second sequence identifier with the first memory buffer and the second memory buffer, respectively. Further, the method can include accessing the first and second memory buffers based on the first and second sequence identifiers.