A method of speeding up access to a memory page included in a memory bank in a multi-bank type memory having a quantity of N memory banks by a memory controller, wherein the memory controller includes a quantity of M page registers wherein the quantity of M page registers is less than the quantity of N memory banks such that not every one of the N memory banks is represented in the M page registers, wherein a page register is arranged to store a selected bank number corresponding to a selected one of the M memory banks, an open page address located within the selected bank, and an open page status, and wherein the memory controller further includes an adjustable comparator unit coupled to each of the plurality of page registers, and wherein the memory controller further includes a random page register number generator arranged to randomly generate an integer between and including 1 and M, comprising:
- receiving an incoming system address request, wherein the incoming system address request includes a requested bank number and a requested page number;
- locating a page register corresponding to the requested bank number by the comparator;
- comparing the stored page address included in the located page register to the requested page address;
- accessing the requested page in the memory bank corresponding to the requested bank number when the stored page address matches the requested page address for the requested memory bank;
- and
- closing the stored page using the page address from the page register of the bank which number is given by the random page register number generator if the requested bank and stored page address do not match;
- opening a new page using the page address from the incoming system address;
- and
- accessing the requested bank.