A memory controller monitors requests from one or more computer subsystems
and issues one or more prefetch commands if the memory controller detects
that the memory system is idle after a period of activity, or if a
prefetch buffer read hit occurs. In some embodiments, results of a
prefetching operations are stored in a prefetch buffer configured to
provide an automatic aging mechanism, which evicts prefetched data from
time to time. The prefetched data in the prefetch buffer is released and
sent back to the requester in order with respect to previous memory
access requests.