Methods, software and systems to determine channel ownership and physical
block location within the channel in non-uniformly distributed DRAM
configurations and also to detect in-range memory address matches are
presented. A first method, which may also be implemented in software
and/or hardware, allocates memory non-uniformly between a number of
memory channels, determines a selected memory channel from the memory
channels for a program address, and maps the program address to a
physical address within the selected memory channel. A second method,
which may also be implemented in software and/or hardware, designates a
range of memory to perform address matching, monitors memory accesses and
when a memory access occurs with the specified range, perform a
particular function.