Nested Channel Address Interleaving for Non-Power-of-Two Memory Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current techniques for interleaving memory requests across memory channels are inefficient, particularly for non-power-of-two numbers of channels, leading to imbalanced distribution and unused memory regions.

Innovation Solution

A nested interleaving scheme is employed to map the address space across memory channels, splitting the address range into regions and using different translation functions for each region to ensure even distribution across channels, preventing imbalances and unused regions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If mod N arithmetic is used to interleave addresses across non-power-of-two channels, then the address space can be distributed across all channels, but the distribution becomes imbalanced with some channels receiving more addresses than others

Engineering Contradiction:
Improveinterleaving support for non-power-of-two channelsVSAvoidaddress distribution balance
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The address space is segmented into multiple regions, with each region having its own translation function. This allows different parts of the address space to be mapped to channels in a balanced manner, preventing any single channel from receiving disproportionately more addresses. The segmentation enables the system to handle non-power-of-two channel counts while maintaining uniform distribution.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If a single translation function is used for the entire address space, then the implementation is simple, but the address distribution across channels becomes imbalanced

Engineering Contradiction:
Improvetranslation function structureVSAvoidmemory bandwidth utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The translation function is made dynamic by selecting different translation functions based on the address region. Instead of a static single function, the system dynamically chooses the appropriate translation function (first or second) based on which address region the current request falls into. This dynamic approach enables balanced channel distribution while maintaining implementation feasibility.

Inventive Principle:
Principle #15Dynamics

3Productivity

If address bits are dropped before sending to memory controller, then the interleaving is achieved, but unused memory regions are created when using non-power-of-two channels

Engineering Contradiction:
Improvememory bandwidthVSAvoidusable memory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The translation function changes the mapping parameters dynamically based on the address region. By using different translation functions for different regions, the system can fully utilize all memory addresses across all channels without creating unused regions. This parameter change approach ensures that every memory location is accessible through at least one channel.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9141541B2Nested channel address interleaving
Publication Date: 2015.09.22 ADVANCED MICRO DEVICES INC
  • US9141541B2 patent drawing
  • US9141541B2 patent drawing
  • US9141541B2 patent drawing

AI summary

A system and method for mapping an address space to a non-power-of-two number of memory channels. Addresses are translated and interleaved to the memory channels such that each memory channel has an equal amount of mapped address space. The address space is partitioned into two regions, and a first translation function is used for memory requests targeting the first region and a second translation function is used for memory requests targeting the second region. The first translation function is based on a first set of address bits and the second translation function is based on a second set of address bits.