1. A method for prefetching data from memory for data requests of a multicore data processor, comprising: issuing a plurality of data prefetches to a memory device within each of a plurality of concurrent prefetch streams; altering timings of data prefetches within each prefetch stream as a function of time between consecutive cache misses within the prefetch stream, wherein the altering comprises: generating a first data prefetch within one of the data streams when a predicted timing of a first data request corresponding to the first data prefetch is less than a preset threshold; and generating a second data prefetch within another of the data streams before the first data prefetch when a predicted timing of the first data request is greater than the preset threshold.