Patent ID: 7526616
Filing Date: 2009-04-28
Classification: G06F

Abstract:
1. A method in a data processing system for providing hardware assistance to prefetch data during execution of code by a processor in the data processing system, the method comprising: responsive to loading of an instruction in the code into a cache, determining, by a processor unit, whether metadata for a prefetch is present for the instruction, wherein the metadata comprises a prefetch indicator that is associated with the instruction and stored in a prefetch indicator field of a page table; storing a first threshold value and a second threshold value in a first threshold field and a second threshold field, respectively, of the page table in association with the prefetch indicator field and a plurality of counter fields, wherein the first threshold value specifies a maximum counter value in an associated counter field and wherein the second threshold value specifies a minimum counter value in an associated counter field; responsive to a determination of the metadata being present for the instruction, determining whether data is to be prefetched, wherein the step of determining whether data is to be prefetched comprises determining whether a first counter value in an associated counter field representing a number of outstanding cache misses is less than the first threshold value in the first threshold field, and determining whether a second counter value in an associated counter field representing a number of cache lines chosen to be replaced is greater than the second threshold value in the second threshold field; and responsive to a determination that data is to be prefetched, prefetching data, from within a data structure using the metadata, into the cache in the processor, wherein the step of prefetching comprises prefetching the data responsive to determining that the first counter value in an associated counter field representing the number of outstanding cache misses is less than the first threshold value in the first threshold field, and responsive to a determination that the second counter value in an associated counter field representing the number of cache lines chosen to be replaced is greater than the second threshold value in the second threshold field.