A method and apparatus for reordering memory requests for page coherency. Various
data streams are frequently found in separate areas of physical memory (i.e. each
data stream is found in a separate memory "page"). Because these requests from
different streams become intermixed, a certain amount of latency results from the
resulting page "breaks." These page breaks occur when consecutive requests are
from different data streams, requiring accesses to different memory pages. When
several separate streams of data are requested by a client, page coherency between
requests diminishes. A reordering device regains lost page coherency, thereby reducing
the amount of latency and increasing overall system performance.