Dynamically updating hardware prefetch trait to exclusive or shared at program detection
First Claim
1. A processor, comprising:
- a processing core configured to;
load a first table that specifies a prefetch trait for a predetermined program, wherein the prefetch trait is a characteristic of a prefetch that is represented in a binary value, wherein the characteristic is either exclusive or shared;
detect from a second table that identifies running processes that the predetermined program is running on the processor; and
look up the prefetch trait associated with the predetermined program running on the processor; and
a hardware data prefetcher configured to perform hardware prefetches for the predetermined program using the prefetch trait, wherein the hardware data prefetcher performs hardware prefetches for all values of the prefetch trait;
wherein the hardware data prefetcher analyzes memory access by the processing core, that are contemporaneous with the hardware prefetches, and dynamically updates the prefetch trait according to the analysis.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor includes a processing core that detects a predetermined program is running on the processor and looks up a prefetch trait associated with the predetermined program running on the processor, wherein the prefetch trait is either exclusive or shared. The processor also includes a hardware data prefetcher that performs hardware prefetches for the predetermined program using the prefetch trait. Alternatively, the processing core loads each of one or more range registers of the processor with a respective address range in response to detecting that the predetermined program is running on the processor. Each of the one or more address ranges has an associated prefetch trait, wherein the prefetch trait is either exclusive or shared. The hardware data prefetcher performs hardware prefetches for the predetermined program using the prefetch traits associated with the address ranges loaded into the range registers.
16 Citations
21 Claims
-
1. A processor, comprising:
-
a processing core configured to; load a first table that specifies a prefetch trait for a predetermined program, wherein the prefetch trait is a characteristic of a prefetch that is represented in a binary value, wherein the characteristic is either exclusive or shared; detect from a second table that identifies running processes that the predetermined program is running on the processor; and look up the prefetch trait associated with the predetermined program running on the processor; and a hardware data prefetcher configured to perform hardware prefetches for the predetermined program using the prefetch trait, wherein the hardware data prefetcher performs hardware prefetches for all values of the prefetch trait; wherein the hardware data prefetcher analyzes memory access by the processing core, that are contemporaneous with the hardware prefetches, and dynamically updates the prefetch trait according to the analysis. - View Dependent Claims (2, 3, 4, 5, 6, 21)
-
-
7. A method for performing hardware data prefetching by a processor, the method comprising:
-
loading a first table that specifies a prefetch trait for a predetermined program, wherein the prefetch trait is a characteristic of a prefetch that is represented in a binary value, wherein the characteristic is either exclusive or shared; detecting from a second table that identifies running processes that the predetermined program is running on the processor; looking up the prefetch trait associated with the predetermined program running on the processor; performing hardware prefetches for the predetermined program using the prefetch trait, wherein the hardware prefetches are performed for all values of the prefetch trait; and analyzing memory access that are contemporaneous with the hardware prefetches, and dynamically updating the prefetch trait according to the analysis. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A processor, comprising:
-
a processing core configured to; detect that a predetermined program is running on the processor; and load each of one or more range registers of the processor with a respective address range in response to said detecting that the predetermined program is running on the processor, wherein each of the one or more address ranges has an associated prefetch trait, wherein the prefetch trait is a characteristic of a prefetch that is represented in a binary value, wherein the characteristic is either exclusive or shared; and a hardware data prefetcher configured to perform hardware prefetches for the predetermined program using the prefetch trait associated with the one or more address ranges loaded into the range registers, wherein the hardware data prefetcher performs hardware prefetches for all values of the prefetch trait; wherein the hardware data prefetcher analyzes memory accesses by the processing core, that are contemporaneous with the hardware prefetches, and dynamically updates the prefetch trait according to the analysis. - View Dependent Claims (14, 15, 16)
-
-
17. A method for performing hardware data prefetching by a processor, the method comprising:
-
detecting that a predetermined program is running on the processor; loading each of one or more range registers of the processor with a respective address range in response to said detecting that the predetermined program is running on the processor; wherein each of the one or more address ranges has an associated prefetch trait; wherein the prefetch trait is a characteristic of a prefetch that is represented in a binary value, wherein the characteristic is either exclusive or shared; and performing hardware prefetches for the predetermined program using the prefetch trait associated with the address ranges loaded into the range registers. - View Dependent Claims (18, 19, 20)
-
Specification