CPC G06F 12/0607 (2013.01) [G06F 9/4406 (2013.01); G06F 12/0246 (2013.01); G06F 12/0811 (2013.01); G06F 13/1668 (2013.01)] | 20 Claims |
1. A computing apparatus comprising:
a three-rank environment comprising a plurality of memory modules, wherein the plurality of memory modules comprises a quantity of memory modules equal to a non-power of two number;
a memory controller operatively coupled with the plurality of memory modules and configured to at least:
load a mapping of target ranges in system memory space interleaved two-ways across locations in the three-rank environment, wherein the target ranges comprise three ranges of rank-agnostic addresses for at least a range of the target ranges, the mapping comprises a two-way interleaving of the range across two ranks of the three-rank environment and offsets from base locations in the two ranks, and the offsets differ relative to each other for at least one range of the three ranges of rank-agnostic addresses;
receive an instruction to read data at a rank-agnostic location in the system memory space;
using the mapping, map the rank-agnostic location to two interleaved locations offset different amounts from the base location in each of the two ranks mapped to the range of the rank-agnostic location; and
read the data at the two interleaved locations.
|