Nested Channel Address Interleaving for Non-Power-of-Two Memory Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


