A method for managing access to a memory having a plurality of memory banks, the method comprising: receiving a plurality of memory requests and storing the received memory requests in a queue as pending memory requests; selecting one of the pending memory requests stored in the queue as a current memory request; identifying a given memory page requested by the current memory request, wherein the given memory page is in a given memory bank of the plurality of memory banks; determining whether the given memory page should be closed or left open based on a current prediction value corresponding to a history of recent memory accesses to the given memory bank; and once access to the given memory page for the current memory request has completed, performing one of: closing the given memory page in response to said determining resulting in a determination that the given memory page should be closed; or leaving open the given memory page in response to said determining resulting in a determination that the given memory page should be left open; said method characterised by: determining that none of the remaining pending memory requests stored in the queue are requesting a memory page in the given memory bank, wherein said determining whether the given memory page should be closed or left open is performed in response to said determining that none of the remaining pending memory requests are requesting a memory page in the given memory bank. receiving a plurality of memory requests and storing the received memory requests in a queue as pending memory requests; selecting one of the pending memory requests stored in the queue as a current memory request; identifying a given memory page requested by the current memory request, wherein the given memory page is in a given memory bank of the plurality of memory banks; determining whether the given memory page should be closed or left open based on a current prediction value corresponding to a history of recent memory accesses to the given memory bank; and once access to the given memory page for the current memory request has completed, performing one of: closing the given memory page in response to said determining resulting in a determination that the given memory page should be closed; or leaving open the given memory page in response to said determining resulting in a determination that the given memory page should be left open; said method characterised by: determining that none of the remaining pending memory requests stored in the queue are requesting a memory page in the given memory bank, wherein said determining whether the given memory page should be closed or left open is performed in response to said determining that none of the remaining pending memory requests are requesting a memory page in the given memory bank. closing the given memory page in response to said determining resulting in a determination that the given memory page should be closed; or leaving open the given memory page in response to said determining resulting in a determination that the given memory page should be left open; said method characterised by: determining that none of the remaining pending memory requests stored in the queue are requesting a memory page in the given memory bank, wherein said determining whether the given memory page should be closed or left open is performed in response to said determining that none of the remaining pending memory requests are requesting a memory page in the given memory bank. determining that none of the remaining pending memory requests stored in the queue are requesting a memory page in the given memory bank, wherein said determining whether the given memory page should be closed or left open is performed in response to said determining that none of the remaining pending memory requests are requesting a memory page in the given memory bank.