In some applications, such as video motion compression processing for
example, a request pattern or "stream" of requests for accesses to memory
(e.g., DRAM) may have, over a large number of requests, a relatively
small number of requests to the same page. Due to the small number of
requests to the same page, conventionally sorting to aggregate page hits
may not be very effective. Reordering the stream can be used to "bury" or
"hide" much of the necessary precharge/activate time, which can have a
highly positive impact on overall throughput. For example, separating
accesses to different rows of the same bank by at least a predetermined
number of clocks can effectively hide the overhead involved in
precharging/activating the rows.