A system and method for improving memory performance and decreasing memory power
requirements is described. To accomplish the improvements, a prefetch buffer is
added to a memory controller with accompanying prefetch logic. The memory controller
first attempts to satisfy memory requests from the prefetch buffer allowing the
main memory to stay in a reduced power state until accessing it is required. If
the memory controller is unable to satisfy a memory request from the prefetch buffer,
the main memory is changed to an active power state and the prefetch logic is invoked.
The prefetch logic loads the requested memory, returns the request memory to the
requester, and loads memory likely to be requested in the near future into the
prefetch buffer. Concurrent with the execution of the prefetch logic, the memory
controller returns the requested data. Following the retrieval from main memory,
the memory controller may place the main memory into a reduced power state immediately,
or after a selected interval, based upon the likelihood of a subsequent memory
request miss.