One embodiment of the invention is a memory controller that maps a received address
to a memory location in a plurality of memory banks, the memory controller comprising:
circuitry for calculating a remainder from a division of the received address by
a divisor, wherein the divisor is based on the number of the plurality of banks;
circuitry for determining a particular bank of the plurality of banks based on
the remainder and at least one bit of the received address; and circuitry for determining
the memory location in the particular bank using at least a portion of the received address.