Patent ID: 9639471
Date: 2017-05-02
CPC Classifications: G06F

Claim:
1. A system comprising: a plurality of caches; and a prefetcher coupled to the plurality of caches and configured to observe a stream of access requests comprising a first plurality of access requests, wherein each access request of the first plurality of access requests includes a respective physical address that is within a first physical memory page, the first plurality of access requests interleaved in the stream with a second plurality of access requests, wherein each access request of the second plurality of access requests includes a respective physical address that is within a second physical memory page, the prefetcher further configured to filter the first plurality of access requests in the stream from the second plurality of access requests in the stream using the respective physical addresses within the first physical memory page and the respective physical addresses within the second physical memory page to distinguish the first plurality of access requests from the second plurality of access requests, the prefetcher further configured to examine the first plurality of access requests and to determine a pattern of the first plurality of access requests using the respective physical addresses within the first physical memory page, the prefetcher operable for determining a first prefetch distance comprising a first number of cache lines to be prefetched according to the pattern of the first plurality of access requests; the prefetcher further operable for filtering the second plurality of access requests in the stream from the first plurality of access requests in the stream using the respective physical addresses within the first physical memory page and the respective physical addresses within the second physical memory page to distinguish the second plurality of access requests from the first plurality of access requests, the prefetcher further configured to examine the second plurality of access requests and to determine a pattern of the second plurality of access requests using the respective physical addresses within the second physical memory page, the prefetcher further operable for determining a second prefetch distance comprising a second number of cache lines to be prefetched according to the pattern of the second plurality of access requests, the second number different from the first number, the prefetcher further operable for changing the first prefetch distance and the second prefetch distance independently of one another at different respective rates and at different respective times.